Package omeroweb :: Package webclient :: Module forms
[hide private]
[frames] | no frames]

Source Code for Module omeroweb.webclient.forms

   1  #!/usr/bin/env python 
   2  #  
   3  #  
   4  #  
   5  # Copyright (c) 2008-2011 University of Dundee. 
   6  #  
   7  # This program is free software: you can redistribute it and/or modify 
   8  # it under the terms of the GNU Affero General Public License as 
   9  # published by the Free Software Foundation, either version 3 of the 
  10  # License, or (at your option) any later version. 
  11  #  
  12  # This program is distributed in the hope that it will be useful, 
  13  # but WITHOUT ANY WARRANTY; without even the implied warranty of 
  14  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the 
  15  # GNU Affero General Public License for more details. 
  16  #  
  17  # You should have received a copy of the GNU Affero General Public License 
  18  # along with this program.  If not, see <http://www.gnu.org/licenses/>. 
  19  #  
  20  # Author: Aleksandra Tarkowska <A(dot)Tarkowska(at)dundee(dot)ac(dot)uk>, 2008. 
  21  #  
  22  # Version: 1.0 
  23  # 
  24   
  25  import datetime 
  26  import time 
  27  import logging 
  28  import traceback 
  29   
  30  from django import forms 
  31  from django.forms.widgets import Textarea 
  32  from django.forms.widgets import HiddenInput 
  33  from django.core.urlresolvers import reverse 
  34   
  35  from omeroweb.custom_forms import NonASCIIForm 
  36  from custom_forms import UrlField, MetadataModelChoiceField, \ 
  37                          AnnotationModelMultipleChoiceField, \ 
  38                          ObjectModelMultipleChoiceField 
  39  from omeroweb.webadmin.custom_forms import ExperimenterModelChoiceField, \ 
  40                          ExperimenterModelMultipleChoiceField, \ 
  41                          GroupModelMultipleChoiceField, GroupModelChoiceField 
  42   
  43   
  44  logger = logging.getLogger('forms-web') 
  45                
  46  ################################################################## 
  47  # Static values 
  48   
  49  # TODO: change to reverse 
  50  help_button = "/appmedia/omeroweb/images/help16.png" 
  51   
  52  help_wiki = '<span id="markup" title="Markups - <small>If you\'d like to include URL please type:<br/><b>http://www.openmicroscopy.org.uk/</b></small>"><img src="%s" /></span>' % help_button 
  53   
  54  help_wiki_c = '<span id="markup_c" title="Markups - <small>If you\'d like to include URL please type:<br/><b>http://www.openmicroscopy.org.uk/</b></small>"><img src="%s" /></span>' % help_button 
  55   
  56  help_enable = '<span id="enable" title="Enable/Disable - <small>This option allows the owner to keep the access control of the share.</small>"><img src="%s" /></span>' % help_button 
  57   
  58  help_expire = '<span id="expire" title="Expire date - <small>This date defines when share will stop being available. Date format: YY-MM-DD.</small>"><img src="%s" /></span>' % help_button 
  59   
  60  ################################################################# 
  61  # Non-model Form 
  62   
63 -class ShareForm(NonASCIIForm):
64
65 - def __init__(self, *args, **kwargs):
66 super(ShareForm, self).__init__(*args, **kwargs) 67 68 try: 69 if kwargs['initial']['shareMembers']: pass 70 self.fields['members'] = ExperimenterModelMultipleChoiceField(queryset=kwargs['initial']['experimenters'], initial=kwargs['initial']['shareMembers'], widget=forms.SelectMultiple(attrs={'size':5})) 71 except: 72 logger.error(traceback.format_exc()) 73 self.fields['members'] = ExperimenterModelMultipleChoiceField(queryset=kwargs['initial']['experimenters'], widget=forms.SelectMultiple(attrs={'size':5})) 74 self.fields.keyOrder = ['message', 'expiration', 'enable', 'members']#, 'guests']
75 76 message = forms.CharField(widget=forms.Textarea(attrs={'rows': 10, 'cols': 39}), help_text=help_wiki_c) 77 expiration = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':20}), label="Expire date", help_text=help_expire, required=False) 78 enable = forms.CharField(widget=forms.CheckboxInput(attrs={'size':1}), required=False, help_text=help_enable) 79 #guests = MultiEmailField(required=False, widget=forms.TextInput(attrs={'size':75})) 80
81 - def clean_expiration(self):
82 if self.cleaned_data['expiration'] is not None and len(self.cleaned_data['expiration']) < 1: 83 return None 84 if self.cleaned_data['expiration'] is not None: 85 d = str(self.cleaned_data['expiration']).rsplit("-") 86 # only for python 2.5 87 # date = datetime.datetime.strptime(("%s-%s-%s" % (d[0],d[1],d[2])), "%Y-%m-%d") 88 try: 89 date = datetime.datetime(*(time.strptime(("%s-%s-%s 23:59:59" % (d[0],d[1],d[2])), "%Y-%m-%d %H:%M:%S")[0:6])) 90 except: 91 raise forms.ValidationError('Date is in the wrong format. YY-MM-DD') 92 if time.mktime(date.timetuple()) <= time.time(): 93 raise forms.ValidationError('Expire date must be in the future.') 94 return self.cleaned_data['expiration']
95
96 -class BasketShareForm(ShareForm):
97
98 - def __init__(self, *args, **kwargs):
99 super(BasketShareForm, self).__init__(*args, **kwargs) 100 101 try: 102 self.fields['image'] = GroupModelMultipleChoiceField(queryset=kwargs['initial']['images'], initial=kwargs['initial']['selected'], widget=forms.SelectMultiple(attrs={'size':10})) 103 except: 104 logger.error(traceback.format_exc()) 105 self.fields['image'] = GroupModelMultipleChoiceField(queryset=kwargs['initial']['images'], widget=forms.SelectMultiple(attrs={'size':10}))
106 107
108 -class ShareCommentForm(NonASCIIForm):
109 110 comment = forms.CharField(widget=forms.Textarea(attrs={'rows': 2, 'cols': 39}))# help_text=help_wiki_c
111
112 -class ContainerForm(NonASCIIForm):
113 114 name = forms.CharField(max_length=250, widget=forms.TextInput(attrs={'size':45})) 115 description = forms.CharField(widget=forms.Textarea(attrs={'rows': 10, 'cols': 39}), required=False, help_text=help_wiki)
116
117 -class ContainerNameForm(NonASCIIForm):
118 119 name = forms.CharField(max_length=250, widget=forms.TextInput(attrs={'size':45}))
120
121 -class ContainerDescriptionForm(NonASCIIForm):
122 123 description = forms.CharField(widget=forms.Textarea(attrs={'rows': 3, 'cols': 39}), required=False)
124
125 -class CommentAnnotationForm(NonASCIIForm):
126 127 content = forms.CharField(widget=forms.Textarea(attrs={'rows': 2, 'cols': 39}))
128
129 -class TagFilterForm(NonASCIIForm):
130 131 tag = forms.CharField(widget=forms.TextInput(attrs={'size':36}), required=False)
132
133 -class TagAnnotationForm(NonASCIIForm):
134 135 tag = forms.CharField(widget=forms.TextInput(attrs={'size':36})) 136 description = forms.CharField(widget=forms.Textarea(attrs={'rows': 3, 'cols': 31}), required=False, label="Desc")
137
138 -class TagListForm(forms.Form):
139
140 - def __init__(self, *args, **kwargs):
141 super(TagListForm, self).__init__(*args, **kwargs) 142 self.fields['tags'] = AnnotationModelMultipleChoiceField(queryset=kwargs['initial']['tags'], widget=forms.SelectMultiple(attrs={'size':6, 'class':'existing'})) 143 self.fields.keyOrder = ['tags']
144
145 -class FileListForm(forms.Form):
146
147 - def __init__(self, *args, **kwargs):
148 super(FileListForm, self).__init__(*args, **kwargs) 149 self.fields['files'] = AnnotationModelMultipleChoiceField(queryset=kwargs['initial']['files'], widget=forms.SelectMultiple(attrs={'size':6, 'class':'existing'})) 150 self.fields.keyOrder = ['files']
151
152 -class UploadFileForm(NonASCIIForm):
153 annotation_file = forms.FileField(required=False) 154
155 - def clean_annotation_file(self):
156 if self.cleaned_data['annotation_file'] is None: 157 raise forms.ValidationError('This field is required.')
158
159 -class MultiAnnotationForm(NonASCIIForm):
160
161 - def __init__(self, *args, **kwargs):
162 super(MultiAnnotationForm, self).__init__(*args, **kwargs) 163 try: 164 self.fields['image'] = ObjectModelMultipleChoiceField(queryset=kwargs['initial']['images'], initial=kwargs['initial']['selected']['images'], widget=forms.SelectMultiple(attrs={'size':10}), required=False) 165 except: 166 logger.error(traceback.format_exc()) 167 self.fields['image'] = ObjectModelMultipleChoiceField(queryset=kwargs['initial']['images'], widget=forms.SelectMultiple(attrs={'size':10}), required=False) 168 169 try: 170 self.fields['dataset'] = ObjectModelMultipleChoiceField(queryset=kwargs['initial']['datasets'], initial=kwargs['initial']['selected']['datasets'], widget=forms.SelectMultiple(attrs={'size':10}), required=False) 171 except: 172 logger.error(traceback.format_exc()) 173 self.fields['dataset'] = ObjectModelMultipleChoiceField(queryset=kwargs['initial']['datasets'], widget=forms.SelectMultiple(attrs={'size':10}), required=False) 174 175 try: 176 self.fields['project'] = ObjectModelMultipleChoiceField(queryset=kwargs['initial']['projects'], initial=kwargs['initial']['selected']['projects'], widget=forms.SelectMultiple(attrs={'size':10}), required=False) 177 except: 178 logger.error(traceback.format_exc()) 179 self.fields['project'] = ObjectModelMultipleChoiceField(queryset=kwargs['initial']['projects'], widget=forms.SelectMultiple(attrs={'size':10}), required=False) 180 181 try: 182 self.fields['screen'] = ObjectModelMultipleChoiceField(queryset=kwargs['initial']['screens'], initial=kwargs['initial']['selected']['screens'], widget=forms.SelectMultiple(attrs={'size':10}), required=False) 183 except: 184 logger.error(traceback.format_exc()) 185 self.fields['screen'] = ObjectModelMultipleChoiceField(queryset=kwargs['initial']['screens'], widget=forms.SelectMultiple(attrs={'size':10}), required=False) 186 187 try: 188 self.fields['plate'] = ObjectModelMultipleChoiceField(queryset=kwargs['initial']['plates'], initial=kwargs['initial']['selected']['plates'], widget=forms.SelectMultiple(attrs={'size':10}), required=False) 189 except: 190 logger.error(traceback.format_exc()) 191 self.fields['plate'] = ObjectModelMultipleChoiceField(queryset=kwargs['initial']['plates'], widget=forms.SelectMultiple(attrs={'size':10}), required=False) 192 193 try: 194 self.fields['acquisition'] = ObjectModelMultipleChoiceField(queryset=kwargs['initial']['acquisitions'], initial=kwargs['initial']['selected']['acquisitions'], widget=forms.SelectMultiple(attrs={'size':10}), required=False) 195 except: 196 logger.error(traceback.format_exc()) 197 self.fields['acquisition'] = ObjectModelMultipleChoiceField(queryset=kwargs['initial']['acquisitions'], widget=forms.SelectMultiple(attrs={'size':10}), required=False) 198 199 try: 200 self.fields['well'] = ObjectModelMultipleChoiceField(queryset=kwargs['initial']['wells'], initial=kwargs['initial']['selected']['wells'], widget=forms.SelectMultiple(attrs={'size':10}), required=False) 201 except: 202 logger.error(traceback.format_exc()) 203 self.fields['well'] = ObjectModelMultipleChoiceField(queryset=kwargs['initial']['wells'], widget=forms.SelectMultiple(attrs={'size':10}), required=False) 204 205 self.fields['tags'] = AnnotationModelMultipleChoiceField(queryset=kwargs['initial']['tags'], widget=forms.SelectMultiple(attrs={'size':6, 'class':'existing'}), required=False) 206 self.fields['files'] = AnnotationModelMultipleChoiceField(queryset=kwargs['initial']['files'], widget=forms.SelectMultiple(attrs={'size':6, 'class':'existing'}), required=False) 207 208 self.fields.keyOrder = ['content', 'tag', 'description', 'annotation_file', 'tags', 'files', 'image', 'project', 'dataset', 'screen', 'plate', 'acquisition', 'well']
209 210 content = forms.CharField(widget=forms.Textarea(attrs={'rows': 10, 'cols': 39}), required=False) 211 tag = forms.CharField(widget=forms.TextInput(attrs={'size':36}), required=False) 212 description = forms.CharField(widget=forms.Textarea(attrs={'rows': 3, 'cols': 31}), required=False, label="Desc") 213 annotation_file = forms.FileField(required=False)
214
215 -class UsersForm(forms.Form):
216
217 - def __init__(self, *args, **kwargs):
218 super(UsersForm, self).__init__(*args, **kwargs) 219 try: 220 empty_label = kwargs['initial']['empty_label'] 221 except: 222 empty_label='---------' 223 try: 224 menu = kwargs['initial']['menu'] 225 except: 226 menu = '----------' 227 try: 228 user = kwargs['initial']['user'] 229 except: 230 user = None 231 users = kwargs['initial']['users'] 232 233 self.fields['experimenter'] = ExperimenterModelChoiceField(queryset=users, initial=user, widget=forms.Select(attrs={'onchange':'window.location.href=\''+reverse(viewname="load_template", args=[menu])+'?experimenter=\'+this.options[this.selectedIndex].value'}), required=False, empty_label=empty_label) 234 235 if users is None or len(users)<1: 236 self.fields['experimenter'].widget.attrs['disabled'] = True 237 self.fields['experimenter'].widget.attrs['class'] = 'disabled' 238 239 self.fields.keyOrder = ['experimenter']
240
241 -class ActiveGroupForm(forms.Form):
242
243 - def __init__(self, *args, **kwargs):
244 super(ActiveGroupForm, self).__init__(*args, **kwargs) 245 try: 246 self.fields['active_group'] = GroupModelChoiceField(queryset=kwargs['initial']['mygroups'], initial=kwargs['initial']['activeGroup'], empty_label=None, widget=forms.Select(attrs={'onchange':'window.location.href=\''+reverse(viewname="change_active_group")+'?url='+kwargs['initial']['url']+'&active_group=\'+this.options[this.selectedIndex].value'})) 247 except: 248 self.fields['active_group'] = GroupModelChoiceField(queryset=kwargs['initial']['mygroups'], initial=kwargs['initial']['activeGroup'], empty_label=None, widget=forms.Select(attrs={'onchange':'window.location.href=\''+reverse(viewname="change_active_group")+'?active_group=\'+this.options[this.selectedIndex].value'})) 249 self.fields.keyOrder = ['active_group']
250
251 -class HistoryTypeForm(forms.Form):
252 HISTORY_CHOICES = ( 253 ('all', '---------'), 254 ('project', 'Projects'), 255 ('dataset', 'Datasets'), 256 ('image', 'Images'), 257 #('renderdef', 'Views'), 258 ) 259 260 data_type = forms.ChoiceField(choices=HISTORY_CHOICES, widget=forms.Select(attrs={'onchange':'window.location.href=\'?history_type=\'+this.options[this.selectedIndex].value'}))
261 262
263 -class WellIndexForm(forms.Form):
264
265 - def __init__(self, *args, **kwargs):
266 super(WellIndexForm, self).__init__(*args, **kwargs) 267 rmin, rmax = kwargs['initial']['range'] 268 choices = [(str(i), "Field#%i" % (i-rmin+1)) for i in range(rmin, rmax+1)] 269 self.fields['index'] = forms.ChoiceField(choices=tuple(choices), widget=forms.Select(attrs={'onchange':'changeFiled(this.options[this.selectedIndex].value);'})) 270 self.fields.keyOrder = ['index']
271 272 ############################### 273 # METADATA FORMS
274 -class MetadataChannelForm(forms.Form):
275
276 - def __init__(self, *args, **kwargs):
277 super(MetadataChannelForm, self).__init__(*args, **kwargs) 278 279 # Logical channel 280 281 # Name 282 try: 283 if kwargs['initial']['logicalChannel'] is not None: 284 self.fields['name'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['logicalChannel'].id)+', \'name\', this.value);'}), initial=kwargs['initial']['logicalChannel'].name, required=False) 285 else: 286 self.fields['name'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['logicalChannel'].id)+', \'name\', this.value);'}), required=False) 287 self.fields['name'].widget.attrs['disabled'] = True 288 self.fields['name'].widget.attrs['class'] = 'disabled-metadata' 289 except: 290 logger.error(traceback.format_exc()) 291 self.fields['name'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 292 self.fields['name'].widget.attrs['disabled'] = True 293 self.fields['name'].widget.attrs['class'] = 'disabled-metadata' 294 295 # excitationWave 296 try: 297 if kwargs['initial']['logicalChannel'] is not None: 298 self.fields['excitationWave'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['logicalChannel'].id)+', \'name\', this.value);'}), initial=kwargs['initial']['logicalChannel'].excitationWave, label="Excitation", required=False) 299 else: 300 self.fields['excitationWave'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['logicalChannel'].id)+', \'name\', this.value);'}), label="Excitation", required=False) 301 self.fields['excitationWave'].widget.attrs['disabled'] = True 302 self.fields['excitationWave'].widget.attrs['class'] = 'disabled-metadata' 303 except: 304 logger.error(traceback.format_exc()) 305 self.fields['excitationWave'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Excitation", required=False) 306 self.fields['excitationWave'].widget.attrs['disabled'] = True 307 self.fields['excitationWave'].widget.attrs['class'] = 'disabled-metadata' 308 309 # emissionWave 310 try: 311 if kwargs['initial']['logicalChannel'] is not None: 312 self.fields['emissionWave'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['logicalChannel'].id)+', \'name\', this.value);'}), initial=kwargs['initial']['logicalChannel'].emissionWave, label="Emission", required=False) 313 else: 314 self.fields['emissionWave'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['logicalChannel'].id)+', \'name\', this.value);'}), label="Emission", required=False) 315 self.fields['emissionWave'].widget.attrs['disabled'] = True 316 self.fields['emissionWave'].widget.attrs['class'] = 'disabled-metadata' 317 except: 318 logger.error(traceback.format_exc()) 319 self.fields['emissionWave'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Emission", required=False) 320 self.fields['emissionWave'].widget.attrs['disabled'] = True 321 self.fields['emissionWave'].widget.attrs['class'] = 'disabled-metadata' 322 323 # ndFilter 324 try: 325 if kwargs['initial']['logicalChannel'] is not None: 326 self.fields['ndFilter'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['logicalChannel'].id)+', \'name\', this.value);'}), initial=kwargs['initial']['logicalChannel'].ndFilter, label="ND filter [%]", required=False) 327 else: 328 self.fields['ndFilter'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['logicalChannel'].id)+', \'name\', this.value);'}), label="ND filter [%]", required=False) 329 self.fields['ndFilter'].widget.attrs['disabled'] = True 330 except: 331 logger.error(traceback.format_exc()) 332 self.fields['ndFilter'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="ND filter [%]", required=False) 333 self.fields['ndFilter'].widget.attrs['disabled'] = True 334 335 # pinHoleSize 336 try: 337 if kwargs['initial']['logicalChannel'] is not None: 338 self.fields['pinHoleSize'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['logicalChannel'].id)+', \'name\', this.value);'}), initial=kwargs['initial']['logicalChannel'].pinHoleSize, label="Pin hole size", required=False) 339 else: 340 self.fields['pinHoleSize'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['logicalChannel'].id)+', \'name\', this.value);'}), label="Pin hole size", required=False) 341 self.fields['pinHoleSize'].widget.attrs['disabled'] = True 342 except: 343 logger.error(traceback.format_exc()) 344 self.fields['pinHoleSize'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Pin hole size", required=False) 345 self.fields['pinHoleSize'].widget.attrs['disabled'] = True 346 347 # fluor 348 try: 349 if kwargs['initial']['logicalChannel'] is not None: 350 self.fields['fluor'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['logicalChannel'].id)+', \'name\', this.value);'}), initial=kwargs['initial']['logicalChannel'].fluor, required=False) 351 else: 352 self.fields['fluor'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['logicalChannel'].id)+', \'name\', this.value);'}), required=False) 353 self.fields['fluor'].widget.attrs['disabled'] = True 354 except: 355 logger.error(traceback.format_exc()) 356 self.fields['fluor'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 357 self.fields['fluor'].widget.attrs['disabled'] = True 358 359 # Illumination 360 try: 361 if kwargs['initial']['logicalChannel'].getIllumination() is not None: 362 self.fields['illumination'] = MetadataModelChoiceField(queryset=kwargs['initial']['illuminations'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['logicalChannel'].id)+', \'illumination\', this.options[this.selectedIndex].value);'}), initial=kwargs['initial']['logicalChannel'].getIllumination(), required=False) 363 else: 364 self.fields['illumination'] = MetadataModelChoiceField(queryset=kwargs['initial']['illuminations'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['logicalChannel'].id)+', \'illumination\', this.options[this.selectedIndex].value);'}), required=False) 365 self.fields['illumination'].widget.attrs['disabled'] = True 366 except: 367 logger.error(traceback.format_exc()) 368 self.fields['illumination'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 369 self.fields['illumination'].widget.attrs['disabled'] = True 370 371 # contrastMethods 372 try: 373 if kwargs['initial']['logicalChannel'].contrastMethod is not None: 374 self.fields['contrastMethod'] = MetadataModelChoiceField(queryset=kwargs['initial']['contrastMethods'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['logicalChannel'].id)+', \'contrastMethod\', this.options[this.selectedIndex].value);'}), initial=kwargs['initial']['logicalChannel'].getContrastMethod(), label="Contrast method", required=False) 375 else: 376 self.fields['contrastMethod'] = MetadataModelChoiceField(queryset=kwargs['initial']['contrastMethods'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['logicalChannel'].id)+', \'contrastMethod\', this.options[this.selectedIndex].value);'}), label="Contrast method", required=False) 377 self.fields['contrastMethod'].widget.attrs['disabled'] = True 378 self.fields['contrastMethod'].widget.attrs['class'] = 'disabled-metadata' 379 except: 380 logger.error(traceback.format_exc()) 381 self.fields['contrastMethod'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Contrast method", required=False) 382 self.fields['contrastMethod'].widget.attrs['disabled'] = True 383 self.fields['contrastMethod'].widget.attrs['class'] = 'disabled-metadata' 384 385 # Mode 386 try: 387 if kwargs['initial']['logicalChannel'].getMode() is not None: 388 self.fields['mode'] = MetadataModelChoiceField(queryset=kwargs['initial']['modes'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['logicalChannel'].id)+', \'mode\', this.options[this.selectedIndex].value);'}), initial=kwargs['initial']['logicalChannel'].getMode().value, required=False) 389 else: 390 self.fields['mode'] = MetadataModelChoiceField(queryset=kwargs['initial']['modes'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['logicalChannel'].id)+', \'mode\', this.options[this.selectedIndex].value);'}), required=False) 391 self.fields['mode'].widget.attrs['disabled'] = True 392 self.fields['mode'].widget.attrs['class'] = 'disabled-metadata' 393 except: 394 logger.error(traceback.format_exc()) 395 self.fields['mode'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 396 self.fields['mode'].widget.attrs['disabled'] = True 397 self.fields['mode'].widget.attrs['class'] = 'disabled-metadata' 398 399 # pockelCellSetting 400 try: 401 if kwargs['initial']['logicalChannel'].pockelCellSetting is not None: 402 self.fields['pockelCellSetting'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['logicalChannel'].id)+', \'name\', this.value);'}), initial=kwargs['initial']['logicalChannel'].pockelCellSetting, label="Pockel cell", required=False) 403 else: 404 self.fields['pockelCellSetting'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['logicalChannel'].id)+', \'name\', this.value);'}), label="Pockel cell", required=False) 405 self.fields['pockelCellSetting'].widget.attrs['disabled'] = True 406 self.fields['pockelCellSetting'].widget.attrs['class'] = 'disabled-metadata' 407 except: 408 logger.error(traceback.format_exc()) 409 self.fields['pockelCellSetting'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Pockel cell" ,required=False) 410 self.fields['pockelCellSetting'].widget.attrs['disabled'] = True 411 self.fields['pockelCellSetting'].widget.attrs['class'] = 'disabled-metadata' 412 413 self.fields.keyOrder = ['name', 'excitationWave', 'emissionWave', 'ndFilter', 'pinHoleSize', 'fluor', 'illumination', 'contrastMethod', 'mode', 'pockelCellSetting']
414 415
416 -class MetadataDichroicForm(forms.Form):
417
418 - def __init__(self, *args, **kwargs):
419 super(MetadataDichroicForm, self).__init__(*args, **kwargs) 420 421 # Manufacturer 422 try: 423 if kwargs['initial']['dichroic'].manufacturer is not None: 424 self.fields['manufacturer'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['dichroic'].id)+', \'manufacturer\', this.value);'}), initial=kwargs['initial']['dichroic'].manufacturer, required=False) 425 else: 426 self.fields['manufacturer'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['dichroic'].id)+', \'manufacturer\', this.value);'}), required=False) 427 self.fields['manufacturer'].widget.attrs['disabled'] = True 428 self.fields['manufacturer'].widget.attrs['class'] = 'disabled-metadata' 429 except: 430 logger.error(traceback.format_exc()) 431 self.fields['manufacturer'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 432 self.fields['manufacturer'].widget.attrs['disabled'] = True 433 self.fields['manufacturer'].widget.attrs['class'] = 'disabled-metadata' 434 435 # Model 436 try: 437 if kwargs['initial']['dichroic'].model is not None: 438 self.fields['model'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['dichroic'].id)+', \'model\', this.value);'}), initial=kwargs['initial']['dichroic'].model, required=False) 439 else: 440 self.fields['model'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['dichroic'].id)+', \'model\', this.value);'}), required=False) 441 self.fields['model'].widget.attrs['disabled'] = True 442 self.fields['model'].widget.attrs['class'] = 'disabled-metadata' 443 except: 444 logger.error(traceback.format_exc()) 445 self.fields['model'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 446 self.fields['model'].widget.attrs['disabled'] = True 447 self.fields['model'].widget.attrs['class'] = 'disabled-metadata' 448 449 # Serial number 450 try: 451 if kwargs['initial']['dichroic'].serialNumber is not None: 452 self.fields['serialNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['dichroic'].serialNumber)+', \'serialNumber\', this.value);'}), initial=kwargs['initial']['dichroic'].serialNumber, label="Serial number", required=False) 453 else: 454 self.fields['serialNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['dichroic'].serialNumber)+', \'serialNumber\', this.value);'}), label="Serial number", required=False) 455 self.fields['serialNumber'].widget.attrs['disabled'] = True 456 self.fields['serialNumber'].widget.attrs['class'] = 'disabled-metadata' 457 except: 458 logger.error(traceback.format_exc()) 459 self.fields['serialNumber'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Serial number", required=False) 460 self.fields['serialNumber'].widget.attrs['disabled'] = True 461 self.fields['serialNumber'].widget.attrs['class'] = 'disabled-metadata' 462 463 # Lot number 464 try: 465 if kwargs['initial']['dichroic'].lotNumber is not None: 466 self.fields['lotNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['dichroic'].lotNumber)+', \'lotNumber\', this.value);'}), initial=kwargs['initial']['dichroic'].lotNumber, label="Lot number", required=False) 467 else: 468 self.fields['lotNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['dichroic'].lotNumber)+', \'lotNumber\', this.value);'}), label="Lot number", required=False) 469 self.fields['lotNumber'].widget.attrs['disabled'] = True 470 self.fields['lotNumber'].widget.attrs['class'] = 'disabled-metadata' 471 except: 472 logger.error(traceback.format_exc()) 473 self.fields['lotNumber'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Lot number", required=False) 474 self.fields['lotNumber'].widget.attrs['disabled'] = True 475 self.fields['lotNumber'].widget.attrs['class'] = 'disabled-metadata' 476 477 self.fields.keyOrder = ['manufacturer', 'model', 'serialNumber', 'lotNumber']
478 479
480 -class MetadataMicroscopeForm(forms.Form):
481
482 - def __init__(self, *args, **kwargs):
483 super(MetadataMicroscopeForm, self).__init__(*args, **kwargs) 484 485 # Model 486 try: 487 if kwargs['initial']['microscope'].model is not None: 488 self.fields['model'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['microscope'].id)+', \'model\', this.value);'}), initial=kwargs['initial']['microscope'].model, required=False) 489 else: 490 self.fields['model'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['microscope'].id)+', \'model\', this.value);'}), required=False) 491 self.fields['model'].widget.attrs['disabled'] = True 492 self.fields['model'].widget.attrs['class'] = 'disabled-metadata' 493 except: 494 logger.error(traceback.format_exc()) 495 self.fields['model'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 496 self.fields['model'].widget.attrs['disabled'] = True 497 self.fields['model'].widget.attrs['class'] = 'disabled-metadata' 498 499 # Manufacturer 500 try: 501 if kwargs['initial']['microscope'].manufacturer is not None: 502 self.fields['manufacturer'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['microscope'].id)+', \'manufacturer\', this.value);'}), initial=kwargs['initial']['microscope'].manufacturer, required=False) 503 else: 504 self.fields['manufacturer'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['microscope'].id)+', \'manufacturer\', this.value);'}), required=False) 505 self.fields['manufacturer'].widget.attrs['disabled'] = True 506 self.fields['manufacturer'].widget.attrs['class'] = 'disabled-metadata' 507 except: 508 logger.error(traceback.format_exc()) 509 self.fields['manufacturer'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 510 self.fields['manufacturer'].widget.attrs['disabled'] = True 511 self.fields['manufacturer'].widget.attrs['class'] = 'disabled-metadata' 512 513 # Serial number 514 try: 515 if kwargs['initial']['microscope'].serialNumber is not None: 516 self.fields['serialNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['microscope'].id)+', \'lotNumber\', this.value);'}), initial=kwargs['initial']['microscope'].serialNumber, label="Serial number", required=False) 517 else: 518 self.fields['serialNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['microscope'].id)+', \'lotNumber\', this.value);'}), label="Serial number", required=False) 519 self.fields['serialNumber'].widget.attrs['disabled'] = True 520 self.fields['serialNumber'].widget.attrs['class'] = 'disabled-metadata' 521 except: 522 logger.error(traceback.format_exc()) 523 self.fields['serialNumber'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Serial number", required=False) 524 self.fields['serialNumber'].widget.attrs['disabled'] = True 525 self.fields['serialNumber'].widget.attrs['class'] = 'disabled-metadata' 526 527 # Lot number 528 try: 529 if kwargs['initial']['microscope'].lotNumber is not None: 530 self.fields['lotNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['microscope'].id)+', \'lotNumber\', this.value);'}), initial=kwargs['initial']['microscope'].lotNumber, label="Serial number", required=False) 531 else: 532 self.fields['lotNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['microscope'].id)+', \'lotNumber\', this.value);'}), label="Serial number", required=False) 533 self.fields['lotNumber'].widget.attrs['disabled'] = True 534 self.fields['lotNumber'].widget.attrs['class'] = 'disabled-metadata' 535 except: 536 logger.error(traceback.format_exc()) 537 self.fields['lotNumber'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Serial number", required=False) 538 self.fields['lotNumber'].widget.attrs['disabled'] = True 539 self.fields['lotNumber'].widget.attrs['class'] = 'disabled-metadata' 540 541 # Type 542 try: 543 if kwargs['initial']['microscope'].getMicroscopeType() is not None: 544 self.fields['type'] = MetadataModelChoiceField(queryset=kwargs['initial']['microscopeTypes'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['microscope'].id)+', \'type\', this.options[this.selectedIndex].value);'}), initial=kwargs['initial']['microscope'].getMicroscopeType().value, required=False) 545 else: 546 self.fields['type'] = MetadataModelChoiceField(queryset=kwargs['initial']['microscopeTypes'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['microscope'].id)+', \'type\', this.options[this.selectedIndex].value);'}), required=False) 547 self.fields['type'].widget.attrs['disabled'] = True 548 self.fields['type'].widget.attrs['class'] = 'disabled-metadata' 549 except: 550 logger.error(traceback.format_exc()) 551 self.fields['type'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 552 self.fields['type'].widget.attrs['disabled'] = True 553 self.fields['type'].widget.attrs['class'] = 'disabled-metadata' 554 555 self.fields.keyOrder = ['model', 'manufacturer', 'serialNumber', 'lotNumber', 'type']
556 557
558 -class MetadataObjectiveForm(forms.Form):
559
560 - def __init__(self, *args, **kwargs):
561 super(MetadataObjectiveForm, self).__init__(*args, **kwargs) 562 563 # Model 564 try: 565 if kwargs['initial']['objective'].model is not None: 566 self.fields['model'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['objective'].id)+', \'model\', this.value);'}), initial=kwargs['initial']['objective'].model, required=False) 567 else: 568 self.fields['model'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['objective'].id)+', \'model\', this.value);'}), required=False) 569 self.fields['model'].widget.attrs['disabled'] = True 570 self.fields['model'].widget.attrs['class'] = 'disabled-metadata' 571 except: 572 logger.error(traceback.format_exc()) 573 self.fields['model'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 574 self.fields['model'].widget.attrs['disabled'] = True 575 self.fields['model'].widget.attrs['class'] = 'disabled-metadata' 576 577 # Manufacturer 578 try: 579 if kwargs['initial']['objective'].manufacturer is not None: 580 self.fields['manufacturer'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['objective'].id)+', \'manufacturer\', this.value);'}), initial=kwargs['initial']['objective'].manufacturer, required=False) 581 else: 582 self.fields['manufacturer'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['objective'].id)+', \'manufacturer\', this.value);'}), required=False) 583 self.fields['manufacturer'].widget.attrs['disabled'] = True 584 self.fields['manufacturer'].widget.attrs['class'] = 'disabled-metadata' 585 except: 586 logger.error(traceback.format_exc()) 587 self.fields['manufacturer'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 588 self.fields['manufacturer'].widget.attrs['disabled'] = True 589 self.fields['manufacturer'].widget.attrs['class'] = 'disabled-metadata' 590 591 # Serial Number 592 try: 593 if kwargs['initial']['objective'].serialNumber is not None: 594 self.fields['serialNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['objective'].id)+', \'serialNumber\', this.value);'}), initial=kwargs['initial']['objective'].serialNumber, label="Serial number", required=False) 595 else: 596 self.fields['serialNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['objective'].id)+', \'serialNumber\', this.value);'}), label="Serial number", required=False) 597 self.fields['serialNumber'].widget.attrs['disabled'] = True 598 self.fields['serialNumber'].widget.attrs['class'] = 'disabled-metadata' 599 except: 600 logger.error(traceback.format_exc()) 601 self.fields['serialNumber'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Serial number", required=False) 602 self.fields['serialNumber'].widget.attrs['disabled'] = True 603 self.fields['serialNumber'].widget.attrs['class'] = 'disabled-metadata' 604 605 # Lot number 606 try: 607 if kwargs['initial']['objective'].lotNumber is not None: 608 self.fields['lotNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['logicalchannel'].getObjective().lotNumber)+', \'lotNumber\', this.value);'}), initial=kwargs['initial']['logicalchannel'].getObjective().lotNumber, label="Serial number", required=False) 609 else: 610 self.fields['lotNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['logicalchannel'].getObjective().lotNumber)+', \'lotNumber\', this.value);'}), label="Serial number", required=False) 611 self.fields['lotNumber'].widget.attrs['disabled'] = True 612 self.fields['lotNumber'].widget.attrs['class'] = 'disabled-metadata' 613 except: 614 logger.error(traceback.format_exc()) 615 self.fields['lotNumber'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Serial number", required=False) 616 self.fields['lotNumber'].widget.attrs['disabled'] = True 617 self.fields['lotNumber'].widget.attrs['class'] = 'disabled-metadata' 618 619 # Nominal Magnification 620 try: 621 if kwargs['initial']['objective'].nominalMagnification is not None: 622 self.fields['nominalMagnification'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['objective'].id)+', \'nominalMagnification\', this.value);'}), initial=kwargs['initial']['objective'].nominalMagnification, label="Nominal magnification", required=False) 623 else: 624 self.fields['nominalMagnification'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['objective'].id)+', \'nominalMagnification\', this.value);'}), label="Nominal magnification", required=False) 625 self.fields['nominalMagnification'].widget.attrs['disabled'] = True 626 self.fields['nominalMagnification'].widget.attrs['class'] = 'disabled-metadata' 627 except: 628 logger.error(traceback.format_exc()) 629 self.fields['nominalMagnification'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Nominal magnification", required=False) 630 self.fields['nominalMagnification'].widget.attrs['disabled'] = True 631 self.fields['nominalMagnification'].widget.attrs['class'] = 'disabled-metadata' 632 633 # Calibrated Magnification 634 try: 635 if kwargs['initial']['objective'].calibratedMagnification is not None: 636 self.fields['calibratedMagnification'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['objective'].id)+', \'calibratedMagnification\', this.value);'}), initial=kwargs['initial']['objective'].calibratedMagnification, label="Calibrated magnification", required=False) 637 else: 638 self.fields['calibratedMagnification'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['objective'].id)+', \'calibratedMagnification\', this.value);'}), label="Calibrated magnification", required=False) 639 self.fields['calibratedMagnification'].widget.attrs['disabled'] = True 640 self.fields['calibratedMagnification'].widget.attrs['class'] = 'disabled-metadata' 641 except: 642 logger.error(traceback.format_exc()) 643 self.fields['calibratedMagnification'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Calibrated magnification", required=False) 644 self.fields['calibratedMagnification'].widget.attrs['disabled'] = True 645 self.fields['calibratedMagnification'].widget.attrs['class'] = 'disabled-metadata' 646 647 # Lens NA 648 try: 649 if kwargs['initial']['objective'].lensNA is not None: 650 self.fields['lensNA'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['objective'].id)+', \'lensNA\', this.value);'}), initial=kwargs['initial']['objective'].lensNA, label="Lens NA", required=False) 651 else: 652 self.fields['lensNA'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['objective'].id)+', \'lensNA\', this.value);'}), required=False) 653 self.fields['lensNA'].widget.attrs['disabled'] = True 654 self.fields['lensNA'].widget.attrs['class'] = 'disabled-metadata' 655 except: 656 logger.error(traceback.format_exc()) 657 self.fields['lensNA'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Lens NA", required=False) 658 self.fields['lensNA'].widget.attrs['disabled'] = True 659 self.fields['lensNA'].widget.attrs['class'] = 'disabled-metadata' 660 661 # Immersion 662 try: 663 if kwargs['initial']['objective'].getImmersion() is not None: 664 self.fields['immersion'] = MetadataModelChoiceField(queryset=kwargs['initial']['immersions'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['objective'].id)+', \'immersion\', this.options[this.selectedIndex].value);'}), initial=kwargs['initial']['objective'].getImmersion().value, required=False) 665 else: 666 self.fields['immersion'] = MetadataModelChoiceField(queryset=kwargs['initial']['immersions'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['objective'].id)+', \'immersion\', this.options[this.selectedIndex].value);'}), required=False) 667 self.fields['immersion'].widget.attrs['disabled'] = True 668 self.fields['immersion'].widget.attrs['class'] = 'disabled-metadata' 669 except: 670 logger.error(traceback.format_exc()) 671 self.fields['immersion'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 672 self.fields['immersion'].widget.attrs['disabled'] = True 673 self.fields['immersion'].widget.attrs['class'] = 'disabled-metadata' 674 675 # Correction 676 try: 677 if kwargs['initial']['objective'].getCorrection() is not None: 678 self.fields['correction'] = MetadataModelChoiceField(queryset=kwargs['initial']['corrections'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['objective'].id)+', \'correction\', this.options[this.selectedIndex].value);'}), initial=kwargs['initial']['objective'].getCorrection().value, required=False) 679 else: 680 self.fields['correction'] = MetadataModelChoiceField(queryset=kwargs['initial']['corrections'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['objective'].id)+', \'correction\', this.options[this.selectedIndex].value);'}), required=False) 681 self.fields['correction'].widget.attrs['disabled'] = True 682 self.fields['correction'].widget.attrs['class'] = 'disabled-metadata' 683 except: 684 logger.error(traceback.format_exc()) 685 self.fields['correction'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 686 self.fields['correction'].widget.attrs['disabled'] = True 687 self.fields['correction'].widget.attrs['class'] = 'disabled-metadata' 688 689 # Working Distance 690 try: 691 if kwargs['initial']['objective'].workingDistance is not None: 692 self.fields['workingDistance'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['objective'].id)+', \'workingDistance\', this.value);'}), initial=kwargs['initial']['objective'].workingDistance, label="Working distance", required=False) 693 else: 694 self.fields['workingDistance'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['objective'].id)+', \'workingDistance\', this.value);'}), label="Working distance", required=False) 695 self.fields['workingDistance'].widget.attrs['disabled'] = True 696 self.fields['workingDistance'].widget.attrs['class'] = 'disabled-metadata' 697 except: 698 logger.error(traceback.format_exc()) 699 self.fields['workingDistance'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Working distance", required=False) 700 self.fields['workingDistance'].widget.attrs['disabled'] = True 701 self.fields['workingDistance'].widget.attrs['class'] = 'disabled-metadata' 702 703 # Iris 704 try: 705 if kwargs['initial']['objective'].getIris() is not None: 706 self.fields['iris'] = forms.ChoiceField(choices=self.BOOLEAN_CHOICES, widget=forms.Select(attrs={'onchange':'javascript:saveMetadata('+str(kwargs['initial']['objective'].id)+', \'iris\', this.options[this.selectedIndex].value);'}), initial=kwargs['initial']['objective'].getIris().value, required=False) 707 else: 708 self.fields['iris'] = forms.ChoiceField(choices=self.BOOLEAN_CHOICES, widget=forms.Select(attrs={'onchange':'javascript:saveMetadata('+str(kwargs['initial']['objective'].id)+', \'iris\', this.options[this.selectedIndex].value);'}), required=False) 709 self.fields['iris'].widget.attrs['disabled'] = True 710 self.fields['iris'].widget.attrs['class'] = 'disabled-metadata' 711 except: 712 logger.error(traceback.format_exc()) 713 self.fields['iris'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 714 self.fields['iris'].widget.attrs['disabled'] = True 715 self.fields['iris'].widget.attrs['class'] = 'disabled-metadata' 716 717 self.fields.keyOrder = ['model', 'manufacturer', 'serialNumber', 'lotNumber', 'nominalMagnification', 'calibratedMagnification', 'lensNA', 'immersion', 'correction', 'workingDistance', 'iris']
718 719
720 -class MetadataObjectiveSettingsForm(MetadataObjectiveForm):
721 722 BOOLEAN_CHOICES = ( 723 ('', '---------'), 724 ('True', 'True'), 725 ('False', 'False'), 726 ) 727
728 - def __init__(self, *args, **kwargs):
729 super(MetadataObjectiveSettingsForm, self).__init__(*args, **kwargs) 730 731 # Objective Settings 732 733 # Correction Collar 734 try: 735 if kwargs['initial']['objectiveSettings'].correctionCollar is not None: 736 self.fields['correctionCollar'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['objectiveSettings'].id)+', \'correctionCollar\', this.value);'}), initial=kwargs['initial']['objectiveSettings'].correctionCollar, label="Correction collar", required=False) 737 else: 738 self.fields['correctionCollar'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['objectiveSettings'].id)+', \'correctionCollar\', this.value);'}), label="Correction collar", required=False) 739 self.fields['correctionCollar'].widget.attrs['disabled'] = True 740 self.fields['correctionCollar'].widget.attrs['class'] = 'disabled-metadata' 741 except: 742 logger.error(traceback.format_exc()) 743 self.fields['correctionCollar'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Correction collar", required=False) 744 self.fields['correctionCollar'].widget.attrs['disabled'] = True 745 self.fields['correctionCollar'].widget.attrs['class'] = 'disabled-metadata' 746 747 # Medium 748 try: 749 if kwargs['initial']['objectiveSettings'].getMedium() is not None: 750 self.fields['medium'] = MetadataModelChoiceField(queryset=kwargs['initial']['mediums'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['objectiveSettings'].id)+', \'medium\', this.options[this.selectedIndex].value);'}), initial=kwargs['initial']['objectiveSettings'].getMedium().value, required=False) 751 else: 752 self.fields['medium'] = MetadataModelChoiceField(queryset=kwargs['initial']['mediums'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['objectiveSettings'].id)+', \'medium\', this.options[this.selectedIndex].value);'}), required=False) 753 self.fields['medium'].widget.attrs['disabled'] = True 754 self.fields['medium'].widget.attrs['class'] = 'disabled-metadata' 755 except: 756 logger.error(traceback.format_exc()) 757 self.fields['medium'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 758 self.fields['medium'].widget.attrs['disabled'] = True 759 self.fields['medium'].widget.attrs['class'] = 'disabled-metadata' 760 761 # Refractive Index 762 try: 763 if kwargs['initial']['objectiveSettings'].refractiveIndex is not None: 764 self.fields['refractiveIndex'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['objectiveSettings'].id)+', \'refractiveIndex\', this.value);'}), initial=kwargs['initial']['objectiveSettings'].refractiveIndex, label="Refractive index", required=False) 765 else: 766 self.fields['refractiveIndex'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['objectiveSettings'].id)+', \'refractiveIndex\', this.value);'}), label="Refractive index", required=False) 767 self.fields['refractiveIndex'].widget.attrs['disabled'] = True 768 self.fields['refractiveIndex'].widget.attrs['class'] = 'disabled-metadata' 769 except: 770 logger.error(traceback.format_exc()) 771 self.fields['refractiveIndex'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Refractive index", required=False) 772 self.fields['refractiveIndex'].widget.attrs['disabled'] = True 773 self.fields['refractiveIndex'].widget.attrs['class'] = 'disabled-metadata' 774 775 776 self.fields.keyOrder = ['model', 'manufacturer', 'serialNumber', 'lotNumber', 'nominalMagnification', 'calibratedMagnification', 'lensNA', 'immersion', 'correction', 'workingDistance', 'iris', 'correctionCollar', 'medium', 'refractiveIndex']
777 778
779 -class MetadataFilterForm(forms.Form):
780
781 - def __init__(self, *args, **kwargs):
782 super(MetadataFilterForm, self).__init__(*args, **kwargs) 783 784 # Filter 785 786 # Manufacturer 787 try: 788 if kwargs['initial']['filter'].manufacturer is not None: 789 self.fields['manufacturer'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['filter'].id)+', \'manufacturer\', this.value);'}), initial=kwargs['initial']['filter'].manufacturer, required=False) 790 else: 791 self.fields['manufacturer'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['filter'].id)+', \'manufacturer\', this.value);'}), required=False) 792 self.fields['manufacturer'].widget.attrs['disabled'] = True 793 self.fields['manufacturer'].widget.attrs['class'] = 'disabled-metadata' 794 except: 795 logger.error(traceback.format_exc()) 796 self.fields['manufacturer'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 797 self.fields['manufacturer'].widget.attrs['disabled'] = True 798 self.fields['manufacturer'].widget.attrs['class'] = 'disabled-metadata' 799 800 # Model 801 try: 802 if kwargs['initial']['filter'].model is not None: 803 self.fields['model'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['filter'].id)+', \'model\', this.value);'}), initial=kwargs['initial']['filter'].model, required=False) 804 else: 805 self.fields['model'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['filter'].id)+', \'model\', this.value);'}), required=False) 806 self.fields['model'].widget.attrs['disabled'] = True 807 self.fields['model'].widget.attrs['class'] = 'disabled-metadata' 808 except: 809 logger.error(traceback.format_exc()) 810 self.fields['model'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 811 self.fields['model'].widget.attrs['disabled'] = True 812 self.fields['model'].widget.attrs['class'] = 'disabled-metadata' 813 814 # Serial Number 815 try: 816 if kwargs['initial']['filter'].serialNumber is not None: 817 self.fields['serialNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['filter'].id)+', \'serialNumber\', this.value);'}), initial=kwargs['initial']['filter'].serialNumber, label="Serial number", required=False) 818 else: 819 self.fields['serialNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['filter'].id)+', \'serialNumber\', this.value);'}), label="Serial number", required=False) 820 self.fields['serialNumber'].widget.attrs['disabled'] = True 821 self.fields['serialNumber'].widget.attrs['class'] = 'disabled-metadata' 822 except: 823 logger.error(traceback.format_exc()) 824 self.fields['serialNumber'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Serial number", required=False) 825 self.fields['serialNumber'].widget.attrs['disabled'] = True 826 self.fields['serialNumber'].widget.attrs['class'] = 'disabled-metadata' 827 828 # Lot number 829 try: 830 if kwargs['initial']['filter'].lotNumber is not None: 831 self.fields['lotNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['filter'].id)+', \'lotNumber\', this.value);'}), initial=kwargs['initial']['filter'].lotNumber, label="Lot number", required=False) 832 else: 833 self.fields['lotNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['filter'].id)+', \'lotNumber\', this.value);'}), label="Lot number", required=False) 834 self.fields['lotNumber'].widget.attrs['disabled'] = True 835 self.fields['lotNumber'].widget.attrs['class'] = 'disabled-metadata' 836 except: 837 logger.error(traceback.format_exc()) 838 self.fields['lotNumber'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Lot number", required=False) 839 self.fields['lotNumber'].widget.attrs['disabled'] = True 840 self.fields['lotNumber'].widget.attrs['class'] = 'disabled-metadata' 841 842 # Filter wheel 843 try: 844 if kwargs['initial']['filter'].filterWheel is not None: 845 self.fields['filterWheel'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['filter'].id)+', \'filterWheel\', this.value);'}), initial=kwargs['initial']['filter'].filterWheel, label="Filter wheel", required=False) 846 else: 847 self.fields['filterWheel'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['filter'].id)+', \'filterWheel\', this.value);'}), label="Filter wheel", required=False) 848 self.fields['filterWheel'].widget.attrs['disabled'] = True 849 self.fields['filterWheel'].widget.attrs['class'] = 'disabled-metadata' 850 except: 851 logger.error(traceback.format_exc()) 852 self.fields['filterWheel'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Filter wheel", required=False) 853 self.fields['filterWheel'].widget.attrs['disabled'] = True 854 self.fields['filterWheel'].widget.attrs['class'] = 'disabled-metadata' 855 856 # Type 857 try: 858 if kwargs['initial']['filter'].getFilterType() is not None: 859 self.fields['type'] = MetadataModelChoiceField(queryset=kwargs['initial']['types'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['filter'].id)+', \'type\', this.options[this.selectedIndex].value);'}), initial=kwargs['initial']['filter'].getFilterType().value, required=False) 860 else: 861 self.fields['type'] = MetadataModelChoiceField(queryset=kwargs['initial']['types'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['filter'].id)+', \'type\', this.options[this.selectedIndex].value);'}), required=False) 862 self.fields['type'].widget.attrs['disabled'] = True 863 self.fields['type'].widget.attrs['class'] = 'disabled-metadata' 864 except: 865 logger.error(traceback.format_exc()) 866 self.fields['type'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 867 self.fields['type'].widget.attrs['disabled'] = True 868 self.fields['type'].widget.attrs['class'] = 'disabled-metadata' 869 870 # Cut in 871 try: 872 if kwargs['initial']['filter'].transmittanceRange is not None: 873 self.fields['cutIn'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['filter'].id)+', \'cutIn\', this.value);'}), initial=kwargs['initial']['filter'].getTransmittanceRange().cutIn, label="Cut in", required=False) 874 else: 875 self.fields['cutIn'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['filter'].id)+', \'cutIn\', this.value);'}), label="Cut in", required=False) 876 self.fields['cutIn'].widget.attrs['disabled'] = True 877 self.fields['cutIn'].widget.attrs['class'] = 'disabled-metadata' 878 except: 879 logger.error(traceback.format_exc()) 880 self.fields['cutIn'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Cut in", required=False) 881 self.fields['cutIn'].widget.attrs['disabled'] = True 882 self.fields['cutIn'].widget.attrs['class'] = 'disabled-metadata' 883 884 # Cut out 885 try: 886 if kwargs['initial']['filter'].transmittanceRange is not None: 887 self.fields['cutOut'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['filter'].id)+', \'cutOut\', this.value);'}), initial=kwargs['initial']['filter'].getTransmittanceRange().cutOut, label="Cut out", required=False) 888 else: 889 self.fields['cutOut'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['filter'].id)+', \'cutOut\', this.value);'}), label="Cut out", required=False) 890 self.fields['cutOut'].widget.attrs['disabled'] = True 891 self.fields['cutOut'].widget.attrs['class'] = 'disabled-metadata' 892 except: 893 logger.error(traceback.format_exc()) 894 self.fields['cutOut'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Cut out", required=False) 895 self.fields['cutOut'].widget.attrs['disabled'] = True 896 self.fields['cutOut'].widget.attrs['class'] = 'disabled-metadata' 897 898 # Cut in tolerance 899 try: 900 if kwargs['initial']['filter'].transmittanceRange is not None: 901 self.fields['cutInTolerance'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['filter'].id)+', \'cutInTolerance\', this.value);'}), initial=kwargs['initial']['filter'].getTransmittanceRange().cutInTolerance, label="Cut in tolerance", required=False) 902 else: 903 self.fields['cutInTolerance'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['filter'].id)+', \'cutInTolerance\', this.value);'}), label="Cut in tolerance", required=False) 904 self.fields['cutInTolerance'].widget.attrs['disabled'] = True 905 self.fields['cutInTolerance'].widget.attrs['class'] = 'disabled-metadata' 906 except: 907 logger.error(traceback.format_exc()) 908 self.fields['cutInTolerance'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Cut in tolerance", required=False) 909 self.fields['cutInTolerance'].widget.attrs['disabled'] = True 910 self.fields['cutInTolerance'].widget.attrs['class'] = 'disabled-metadata' 911 912 # Cut on tolerance 913 try: 914 if kwargs['initial']['filter'].transmittanceRange is not None: 915 self.fields['cutOutTolerance'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['filter'].id)+', \'cutOut\', this.value);'}), initial=kwargs['initial']['filter'].getTransmittanceRange().cutOutTolerance, label="Cut out tolerance", required=False) 916 else: 917 self.fields['cutOutTolerance'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['filter'].id)+', \'cutOut\', this.value);'}), label="Cut out tolerance", required=False) 918 self.fields['cutOutTolerance'].widget.attrs['disabled'] = True 919 self.fields['cutOutTolerance'].widget.attrs['class'] = 'disabled-metadata' 920 except: 921 logger.error(traceback.format_exc()) 922 self.fields['cutOutTolerance'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Cut out tolerance", required=False) 923 self.fields['cutOutTolerance'].widget.attrs['disabled'] = True 924 self.fields['cutOutTolerance'].widget.attrs['class'] = 'disabled-metadata' 925 926 # Transmittance 927 try: 928 if kwargs['initial']['filter'].transmittanceRange is not None: 929 self.fields['transmittance'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['filter'].id)+', \'transmittance\', this.value);'}), initial=kwargs['initial']['filter'].getTransmittanceRange().transmittance, required=False) 930 else: 931 self.fields['transmittance'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['filter'].id)+', \'transmittance\', this.value);'}), required=False) 932 self.fields['transmittance'].widget.attrs['disabled'] = True 933 self.fields['transmittance'].widget.attrs['class'] = 'disabled-metadata' 934 except: 935 logger.error(traceback.format_exc()) 936 self.fields['transmittance'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 937 self.fields['transmittance'].widget.attrs['disabled'] = True 938 self.fields['transmittance'].widget.attrs['class'] = 'disabled-metadata' 939 940 self.fields.keyOrder = ['manufacturer', 'model', 'serialNumber', 'lotNumber', 'type', 'filterWheel', 'cutIn', 'cutOut', 'cutInTolerance', 'cutOutTolerance', 'transmittance']
941 942
943 -class MetadataDetectorForm(forms.Form):
944
945 - def __init__(self, *args, **kwargs):
946 super(MetadataDetectorForm, self).__init__(*args, **kwargs) 947 948 # Filter 949 950 # Manufacturer 951 try: 952 if kwargs['initial']['detector'] is not None: 953 self.fields['manufacturer'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detector'].id)+', \'manufacturer\', this.value);'}), initial=kwargs['initial']['detector'].manufacturer, required=False) 954 else: 955 self.fields['manufacturer'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detector'].id)+', \'manufacturer\', this.value);'}), required=False) 956 self.fields['manufacturer'].widget.attrs['disabled'] = True 957 self.fields['manufacturer'].widget.attrs['class'] = 'disabled-metadata' 958 except: 959 logger.error(traceback.format_exc()) 960 self.fields['manufacturer'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 961 self.fields['manufacturer'].widget.attrs['disabled'] = True 962 self.fields['manufacturer'].widget.attrs['class'] = 'disabled-metadata' 963 964 # Model 965 try: 966 if kwargs['initial']['detector'] is not None: 967 self.fields['model'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detector'].id)+', \'model\', this.value);'}), initial=kwargs['initial']['detector'].model, required=False) 968 else: 969 self.fields['model'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detector'].id)+', \'model\', this.value);'}), required=False) 970 self.fields['model'].widget.attrs['disabled'] = True 971 self.fields['model'].widget.attrs['class'] = 'disabled-metadata' 972 except: 973 logger.error(traceback.format_exc()) 974 self.fields['model'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 975 self.fields['model'].widget.attrs['disabled'] = True 976 self.fields['model'].widget.attrs['class'] = 'disabled-metadata' 977 978 # SN 979 try: 980 if kwargs['initial']['detector'] is not None: 981 self.fields['serialNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detector'].id)+', \'serialNumber\', this.value);'}), initial=kwargs['initial']['detector'].serialNumber, required=False) 982 else: 983 self.fields['serialNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detector'].id)+', \'serialNumber\', this.value);'}), required=False) 984 self.fields['serialNumber'].widget.attrs['disabled'] = True 985 self.fields['serialNumber'].widget.attrs['class'] = 'disabled-metadata' 986 except: 987 logger.error(traceback.format_exc()) 988 self.fields['serialNumber'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 989 self.fields['serialNumber'].widget.attrs['disabled'] = True 990 self.fields['serialNumber'].widget.attrs['class'] = 'disabled-metadata' 991 992 # Lot number (NB. Untill OMERO model is updated in 4.3, this will throw since lotNumber is not yet supported) 993 try: 994 if kwargs['initial']['detector'] is not None: 995 self.fields['lotNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detector'].id)+', \'lotNumber\', this.value);'}), initial=kwargs['initial']['detector'].lotNumber, required=False) 996 else: 997 self.fields['lotNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detector'].id)+', \'lotNumber\', this.value);'}), required=False) 998 self.fields['lotNumber'].widget.attrs['disabled'] = True 999 self.fields['lotNumber'].widget.attrs['class'] = 'disabled-metadata' 1000 except: 1001 logger.error(traceback.format_exc()) 1002 self.fields['lotNumber'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 1003 self.fields['lotNumber'].widget.attrs['disabled'] = True 1004 self.fields['lotNumber'].widget.attrs['class'] = 'disabled-metadata' 1005 1006 # Type 1007 try: 1008 if kwargs['initial']['detector'].getDetectorType() is not None: 1009 self.fields['type'] = MetadataModelChoiceField(queryset=kwargs['initial']['types'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['detector'].id)+', \'type\', this.options[this.selectedIndex].value);'}), initial=kwargs['initial']['detector'].getDetectorType().value, required=False) 1010 else: 1011 self.fields['type'] = MetadataModelChoiceField(queryset=kwargs['initial']['types'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['detector'].id)+', \'type\', this.options[this.selectedIndex].value);'}), required=False) 1012 self.fields['type'].widget.attrs['disabled'] = True 1013 self.fields['type'].widget.attrs['class'] = 'disabled-metadata' 1014 except: 1015 logger.error(traceback.format_exc()) 1016 self.fields['type'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 1017 self.fields['type'].widget.attrs['disabled'] = True 1018 self.fields['type'].widget.attrs['class'] = 'disabled-metadata' 1019 1020 # Gain 1021 try: 1022 if kwargs['initial']['detectorSettings'] is not None: 1023 self.fields['gain'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detectorSettings'].id)+', \'gain\', this.value);'}), initial=kwargs['initial']['detectorSettings'].gain, required=False) 1024 elif kwargs['initial']['detector'] is not None: 1025 self.fields['gain'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detector'].id)+', \'gain\', this.value);'}), initial=kwargs['initial']['detector'].gain, required=False) 1026 else: 1027 self.fields['gain'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detectorSettings'].id)+', \'gain\', this.value);'}), required=False) 1028 self.fields['gain'].widget.attrs['disabled'] = True 1029 self.fields['gain'].widget.attrs['class'] = 'disabled-metadata' 1030 except: 1031 logger.error(traceback.format_exc()) 1032 self.fields['gain'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 1033 self.fields['gain'].widget.attrs['disabled'] = True 1034 self.fields['gain'].widget.attrs['class'] = 'disabled-metadata' 1035 1036 # Voltage 1037 try: 1038 if kwargs['initial']['detectorSettings'] is not None: 1039 self.fields['voltage'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detectorSettings'].id)+', \'voltage\', this.value);'}), initial=kwargs['initial']['detectorSettings'].voltage, required=False) 1040 elif kwargs['initial']['detector'] is not None: 1041 self.fields['voltage'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detector'].id)+', \'voltage\', this.value);'}), initial=kwargs['initial']['detector'].voltage, required=False) 1042 else: 1043 self.fields['voltage'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detectorSettings'].id)+', \'voltage\', this.value);'}), required=False) 1044 self.fields['voltage'].widget.attrs['disabled'] = True 1045 self.fields['voltage'].widget.attrs['class'] = 'disabled-metadata' 1046 except: 1047 logger.error(traceback.format_exc()) 1048 self.fields['voltage'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 1049 self.fields['voltage'].widget.attrs['disabled'] = True 1050 self.fields['voltage'].widget.attrs['class'] = 'disabled-metadata' 1051 1052 # Offset 1053 try: 1054 if kwargs['initial']['detectorSettings'] is not None: 1055 self.fields['offsetValue'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detectorSettings'].id)+', \'offsetValue\', this.value);'}), initial=kwargs['initial']['detectorSettings'].offsetValue, label="Offset", required=False) 1056 elif kwargs['initial']['detector'] is not None: 1057 self.fields['offsetValue'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detector'].id)+', \'offsetValue\', this.value);'}), initial=kwargs['initial']['detector'].offsetValue, label="Offset", required=False) 1058 else: 1059 self.fields['offsetValue'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detectorSettings'].id)+', \'offsetValue\', this.value);'}), label="Offset", required=False) 1060 self.fields['offsetValue'].widget.attrs['disabled'] = True 1061 self.fields['offsetValue'].widget.attrs['class'] = 'disabled-metadata' 1062 except: 1063 logger.error(traceback.format_exc()) 1064 self.fields['offsetValue'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Offset", required=False) 1065 self.fields['offsetValue'].widget.attrs['disabled'] = True 1066 self.fields['offsetValue'].widget.attrs['class'] = 'disabled-metadata' 1067 1068 # Zoom 1069 try: 1070 if kwargs['initial']['detector'] is not None: 1071 self.fields['zoom'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detector'].id)+', \'zoom\', this.value);'}), initial=kwargs['initial']['detector'].zoom, required=False) 1072 else: 1073 self.fields['zoom'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detector'].id)+', \'voltage\', this.value);'}), required=False) 1074 self.fields['zoom'].widget.attrs['disabled'] = True 1075 self.fields['zoom'].widget.attrs['class'] = 'disabled-metadata' 1076 except: 1077 logger.error(traceback.format_exc()) 1078 self.fields['zoom'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 1079 self.fields['zoom'].widget.attrs['disabled'] = True 1080 self.fields['zoom'].widget.attrs['class'] = 'disabled-metadata' 1081 1082 # Amplification gain 1083 try: 1084 if kwargs['initial']['detector'] is not None: 1085 self.fields['amplificationGain'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detector'].id)+', \'amplificationGain\', this.value);'}), initial=kwargs['initial']['detector'].amplificationGain, label="Amplification gain", required=False) 1086 else: 1087 self.fields['amplificationGain'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detector'].id)+', \'amplificationGain\', this.value);'}), label="Amplification gain", required=False) 1088 self.fields['amplificationGain'].widget.attrs['disabled'] = True 1089 self.fields['amplificationGain'].widget.attrs['class'] = 'disabled-metadata' 1090 except: 1091 logger.error(traceback.format_exc()) 1092 self.fields['amplificationGain'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Amplification gain", required=False) 1093 self.fields['amplificationGain'].widget.attrs['disabled'] = True 1094 self.fields['amplificationGain'].widget.attrs['class'] = 'disabled-metadata' 1095 1096 # Read out rate 1097 try: 1098 if kwargs['initial']['detectorSettings'] is not None: 1099 self.fields['readOutRate'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detectorSettings'].id)+', \'readOutRate\', this.value);'}), initial=kwargs['initial']['detectorSettings'].readOutRate, label="Read out rate", required=False) 1100 else: 1101 self.fields['readOutRate'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['detectorSettings'].id)+', \'readOutRate\', this.value);'}), label="Read out rate", required=False) 1102 self.fields['readOutRate'].widget.attrs['disabled'] = True 1103 self.fields['readOutRate'].widget.attrs['class'] = 'disabled-metadata' 1104 except: 1105 logger.error(traceback.format_exc()) 1106 self.fields['readOutRate'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Read out rate", required=False) 1107 self.fields['readOutRate'].widget.attrs['disabled'] = True 1108 self.fields['readOutRate'].widget.attrs['class'] = 'disabled-metadata' 1109 1110 # Binning 1111 try: 1112 if kwargs['initial']['detectorSettings'] is not None: 1113 self.fields['binning'] = MetadataModelChoiceField(queryset=kwargs['initial']['binnings'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['detectorSettings'].id)+', \'type\', this.options[this.selectedIndex].value);'}), initial=kwargs['initial']['detectorSettings'].getBinning().value, required=False) 1114 else: 1115 self.fields['binning'] = MetadataModelChoiceField(queryset=kwargs['initial']['binnings'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['detectorSettings'].id)+', \'type\', this.options[this.selectedIndex].value);'}), required=False) 1116 self.fields['binning'].widget.attrs['disabled'] = True 1117 self.fields['binning'].widget.attrs['class'] = 'disabled-metadata' 1118 except: 1119 logger.error(traceback.format_exc()) 1120 self.fields['binning'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 1121 self.fields['binning'].widget.attrs['disabled'] = True 1122 self.fields['binning'].widget.attrs['class'] = 'disabled-metadata' 1123 1124 1125 self.fields.keyOrder = ['manufacturer', 'model', 'serialNumber', 'lotNumber', 'type', 'gain', 'voltage', 'offsetValue', 'zoom', 'amplificationGain', 'readOutRate', 'binning']
1126 1127
1128 -class MetadataLightSourceForm(forms.Form):
1129 1130 BOOLEAN_CHOICES = ( 1131 ('', '---------'), 1132 ('True', 'True'), 1133 ('False', 'False'), 1134 ) 1135
1136 - def __init__(self, *args, **kwargs):
1137 super(MetadataLightSourceForm, self).__init__(*args, **kwargs) 1138 1139 # Filter 1140 1141 # Manufacturer 1142 try: 1143 if kwargs['initial']['lightSource'].manufacturer is not None: 1144 self.fields['manufacturer'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'model\', this.value);'}), initial=kwargs['initial']['lightSource'].manufacturer, required=False) 1145 else: 1146 self.fields['manufacturer'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'model\', this.value);'}), required=False) 1147 self.fields['manufacturer'].widget.attrs['disabled'] = True 1148 self.fields['manufacturer'].widget.attrs['class'] = 'disabled-metadata' 1149 except: 1150 logger.error(traceback.format_exc()) 1151 self.fields['manufacturer'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 1152 self.fields['manufacturer'].widget.attrs['disabled'] = True 1153 self.fields['manufacturer'].widget.attrs['class'] = 'disabled-metadata' 1154 1155 # Model 1156 try: 1157 if kwargs['initial']['lightSource'].model is not None: 1158 self.fields['model'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'model\', this.value);'}), initial=kwargs['initial']['lightSource'].model, required=False) 1159 else: 1160 self.fields['model'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'model\', this.value);'}), required=False) 1161 self.fields['model'].widget.attrs['disabled'] = True 1162 self.fields['model'].widget.attrs['class'] = 'disabled-metadata' 1163 except: 1164 logger.error(traceback.format_exc()) 1165 self.fields['model'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 1166 self.fields['model'].widget.attrs['disabled'] = True 1167 self.fields['model'].widget.attrs['class'] = 'disabled-metadata' 1168 1169 # Serial Number 1170 try: 1171 if kwargs['initial']['lightSource'].serialNumber is not None: 1172 self.fields['serialNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'serialNumber\', this.value);'}), initial=kwargs['initial']['lightSource'].serialNumber, label="Serial number", required=False) 1173 else: 1174 self.fields['serialNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'serialNumber\', this.value);'}), label="Serial number", required=False) 1175 self.fields['serialNumber'].widget.attrs['disabled'] = True 1176 self.fields['serialNumber'].widget.attrs['class'] = 'disabled-metadata' 1177 except: 1178 logger.error(traceback.format_exc()) 1179 self.fields['serialNumber'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Serial number", required=False) 1180 self.fields['serialNumber'].widget.attrs['disabled'] = True 1181 self.fields['serialNumber'].widget.attrs['class'] = 'disabled-metadata' 1182 1183 # Lot Number 1184 try: 1185 if kwargs['initial']['lightSource'].lotNumber is not None: 1186 self.fields['lotNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'lotNumber\', this.value);'}), initial=kwargs['initial']['lightSource'].lotNumber, label="Lot number", required=False) 1187 else: 1188 self.fields['lotNumber'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'lotNumber\', this.value);'}), label="Lot number", required=False) 1189 self.fields['lotNumber'].widget.attrs['disabled'] = True 1190 self.fields['lotNumber'].widget.attrs['class'] = 'disabled-metadata' 1191 except: 1192 logger.error(traceback.format_exc()) 1193 self.fields['lotNumber'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Lot number", required=False) 1194 self.fields['lotNumber'].widget.attrs['disabled'] = True 1195 self.fields['lotNumber'].widget.attrs['class'] = 'disabled-metadata' 1196 1197 # Power 1198 try: 1199 if kwargs['initial']['lightSource'].power is not None: 1200 self.fields['power'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'power\', this.value);'}), initial=kwargs['initial']['lightSource'].power, required=False) 1201 else: 1202 self.fields['power'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'power\', this.value);'}), required=False) 1203 self.fields['power'].widget.attrs['disabled'] = True 1204 self.fields['power'].widget.attrs['class'] = 'disabled-metadata' 1205 except: 1206 logger.error(traceback.format_exc()) 1207 self.fields['power'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 1208 self.fields['power'].widget.attrs['disabled'] = True 1209 self.fields['power'].widget.attrs['class'] = 'disabled-metadata' 1210 1211 # Type 1212 try: 1213 if kwargs['initial']['lightSource'].getLightSourceType() is not None: 1214 self.fields['lstype'] = MetadataModelChoiceField(queryset=kwargs['initial']['lstypes'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'type\', this.options[this.selectedIndex].value);'}), label="Type", initial=kwargs['initial']['lightSource'].getLightSourceType().value, required=False) 1215 else: 1216 self.fields['lstype'] = MetadataModelChoiceField(queryset=kwargs['initial']['lstypes'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'type\', this.options[this.selectedIndex].value);'}), label="Type", required=False) 1217 self.fields['lstype'].widget.attrs['disabled'] = True 1218 self.fields['lstype'].widget.attrs['class'] = 'disabled-metadata' 1219 except: 1220 logger.error(traceback.format_exc()) 1221 self.fields['lstype'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Type", required=False) 1222 self.fields['lstype'].widget.attrs['disabled'] = True 1223 self.fields['lstype'].widget.attrs['class'] = 'disabled-metadata' 1224 1225 # Medium 1226 try: 1227 if kwargs['initial']['lightSource'].getLaserMedium() is not None: 1228 self.fields['lmedium'] = MetadataModelChoiceField(queryset=kwargs['initial']['mediums'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'medium\', this.options[this.selectedIndex].value);'}), initial=kwargs['initial']['lightSource'].getLaserMedium().value, label="Medium", required=False) 1229 else: 1230 self.fields['lmedium'] = MetadataModelChoiceField(queryset=kwargs['initial']['mediums'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'medium\', this.options[this.selectedIndex].value);'}), label="Medium", required=False) 1231 self.fields['lmedium'].widget.attrs['disabled'] = True 1232 self.fields['lmedium'].widget.attrs['class'] = 'disabled-metadata' 1233 except: 1234 logger.error(traceback.format_exc()) 1235 self.fields['lmedium'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Medium", required=False) 1236 self.fields['lmedium'].widget.attrs['disabled'] = True 1237 self.fields['lmedium'].widget.attrs['class'] = 'disabled-metadata' 1238 1239 # Wavelength 1240 try: 1241 if kwargs['initial']['lightSource'].wavelength is not None: 1242 self.fields['wavelength'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'wavelength\', this.value);'}), initial=kwargs['initial']['lightSource'].wavelength, required=False) 1243 else: 1244 self.fields['wavelength'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'wavelength\', this.value);'}), required=False) 1245 self.fields['wavelength'].widget.attrs['disabled'] = True 1246 self.fields['wavelength'].widget.attrs['class'] = 'disabled-metadata' 1247 except: 1248 logger.error(traceback.format_exc()) 1249 self.fields['wavelength'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 1250 self.fields['wavelength'].widget.attrs['disabled'] = True 1251 self.fields['wavelength'].widget.attrs['class'] = 'disabled-metadata' 1252 1253 # FrequencyMultiplication 1254 try: 1255 if kwargs['initial']['lightSource'].frequencyMultiplication is not None: 1256 self.fields['frequencyMultiplication'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'frequencyMultiplication\', this.value);'}), initial=kwargs['initial']['lightSource'].frequencyMultiplication, label="Frequency Multiplication", required=False) 1257 else: 1258 self.fields['frequencyMultiplication'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'frequencyMultiplication\', this.value);'}), label="Frequency Multiplication", required=False) 1259 self.fields['frequencyMultiplication'].widget.attrs['disabled'] = True 1260 self.fields['frequencyMultiplication'].widget.attrs['class'] = 'disabled-metadata' 1261 except: 1262 logger.error(traceback.format_exc()) 1263 self.fields['frequencyMultiplication'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Frequency Multiplication", required=False) 1264 self.fields['frequencyMultiplication'].widget.attrs['disabled'] = True 1265 self.fields['frequencyMultiplication'].widget.attrs['class'] = 'disabled-metadata' 1266 1267 # Tuneable 1268 try: 1269 if kwargs['initial']['lightSource'].tuneable is not None: 1270 self.fields['tuneable'] = forms.ChoiceField(choices=self.BOOLEAN_CHOICES, widget=forms.Select(attrs={'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'tuneable\', this.options[this.selectedIndex].value);'}), initial=kwargs['initial']['lightSource'].tuneable, required=False) 1271 else: 1272 self.fields['tuneable'] = forms.ChoiceField(choices=self.BOOLEAN_CHOICES, widget=forms.Select(attrs={'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'tuneable\', this.options[this.selectedIndex].value);'}), required=False) 1273 self.fields['tuneable'].widget.attrs['disabled'] = True 1274 self.fields['tuneable'].widget.attrs['class'] = 'disabled-metadata' 1275 except: 1276 logger.error(traceback.format_exc()) 1277 self.fields['tuneable'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 1278 self.fields['tuneable'].widget.attrs['disabled'] = True 1279 self.fields['tuneable'].widget.attrs['class'] = 'disabled-metadata' 1280 1281 # Pulse 1282 try: 1283 if kwargs['initial']['lightSource'].pulse is not None: 1284 self.fields['pulse'] = MetadataModelChoiceField(queryset=kwargs['initial']['pulses'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'pulse\', this.options[this.selectedIndex].value);'}), initial=kwargs['initial']['lightSource'].pulse, required=False) 1285 else: 1286 self.fields['pulse'] = MetadataModelChoiceField(queryset=kwargs['initial']['pulses'], empty_label=u"Not set", widget=forms.Select(attrs={'onchange':'saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'pulse\', this.options[this.selectedIndex].value);'}), required=False) 1287 self.fields['pulse'].widget.attrs['disabled'] = True 1288 self.fields['pulse'].widget.attrs['class'] = 'disabled-metadata' 1289 except: 1290 logger.error(traceback.format_exc()) 1291 self.fields['pulse'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 1292 self.fields['pulse'].widget.attrs['disabled'] = True 1293 self.fields['pulse'].widget.attrs['class'] = 'disabled-metadata' 1294 1295 # Repetition Rate 1296 try: 1297 if kwargs['initial']['lightSource'].repetitionRate is not None: 1298 self.fields['repetitionRate'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'repetitionRate\', this.value);'}), initial=kwargs['initial']['lightSource'].repetitionRate, label="Repetition rate", required=False) 1299 else: 1300 self.fields['repetitionRate'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'repetitionRate\', this.value);'}), label="Repetition rate", required=False) 1301 self.fields['repetitionRate'].widget.attrs['disabled'] = True 1302 self.fields['repetitionRate'].widget.attrs['class'] = 'disabled-metadata' 1303 except: 1304 logger.error(traceback.format_exc()) 1305 self.fields['repetitionRate'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Repetition rate", required=False) 1306 self.fields['repetitionRate'].widget.attrs['disabled'] = True 1307 self.fields['repetitionRate'].widget.attrs['class'] = 'disabled-metadata' 1308 1309 # Pockel Cell 1310 try: 1311 if kwargs['initial']['lightSource'].pockelCell is not None: 1312 self.fields['pockelCell'] = forms.ChoiceField(choices=self.BOOLEAN_CHOICES, widget=forms.Select(attrs={'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'pockelCell\', this.options[this.selectedIndex].value);'}), initial=kwargs['initial']['lightSource'].pockelCell, label="Pockel Cell", required=False) 1313 else: 1314 self.fields['pockelCell'] = forms.ChoiceField(choices=self.BOOLEAN_CHOICES, widget=forms.Select(attrs={'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'pockelCell\', this.options[this.selectedIndex].value);'}), label="Pockel Cell", required=False) 1315 self.fields['pockelCell'].widget.attrs['disabled'] = True 1316 self.fields['pockelCell'].widget.attrs['class'] = 'disabled-metadata' 1317 except: 1318 logger.error(traceback.format_exc()) 1319 self.fields['pockelCell'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Pockel Cell", required=False) 1320 self.fields['pockelCell'].widget.attrs['disabled'] = True 1321 self.fields['pockelCell'].widget.attrs['class'] = 'disabled-metadata' 1322 1323 # Attenuation 1324 #try: 1325 # if kwargs['initial']['lightSource'].attenuation is not None: 1326 # self.fields['attenuation'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'attenuation\', this.value);'}), initial=kwargs['initial']['lightSource'].attenuation, required=False) 1327 # else: 1328 # self.fields['attenuation'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['lightSource'].id)+', \'attenuation\', this.value);'}), required=False) 1329 # self.fields['attenuation'].widget.attrs['disabled'] = True 1330 # self.fields['attenuation'].widget.attrs['class'] = 'disabled-metadata' 1331 #except: 1332 # logger.error(traceback.format_exc()) 1333 # self.fields['attenuation'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 1334 # self.fields['attenuation'].widget.attrs['disabled'] = True 1335 # self.fields['attenuation'].widget.attrs['class'] = 'disabled-metadata' 1336 1337 self.fields.keyOrder = ['manufacturer', 'model', 'serialNumber', 'lotNumber', 'power', 'lstype', 'lmedium', 'wavelength', 'frequencyMultiplication', 'tuneable', 'pulse' , 'repetitionRate', 'pockelCell']
1338 1339
1340 -class MetadataEnvironmentForm(forms.Form):
1341
1342 - def __init__(self, *args, **kwargs):
1343 super(MetadataEnvironmentForm, self).__init__(*args, **kwargs) 1344 1345 # Imaging environment 1346 1347 # Temperature 1348 try: 1349 if kwargs['initial']['image'].getImagingEnvironment().temperature is not None: 1350 self.fields['temperature'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['image'].id)+', \'temperature\', this.value);'}), initial=kwargs['initial']['image'].getImagingEnvironment().temperature, required=False) 1351 else: 1352 self.fields['temperature'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['image'].id)+', \'temperature\', this.value);'}), required=False) 1353 self.fields['temperature'].widget.attrs['disabled'] = True 1354 self.fields['temperature'].widget.attrs['class'] = 'disabled-metadata' 1355 except: 1356 logger.error(traceback.format_exc()) 1357 self.fields['temperature'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 1358 self.fields['temperature'].widget.attrs['disabled'] = True 1359 self.fields['temperature'].widget.attrs['class'] = 'disabled-metadata' 1360 1361 # Air Pressure 1362 try: 1363 if kwargs['initial']['image'].getImagingEnvironment().airPressure is not None: 1364 self.fields['airPressure'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['image'].id)+', \'airPressure\', this.value);'}), initial=kwargs['initial']['image'].getImagingEnvironment().airPressure, label="Air Pressure", required=False) 1365 else: 1366 self.fields['airPressure'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['image'].id)+', \'airPressure\', this.value);'}), label="Air Pressure", required=False) 1367 self.fields['airPressure'].widget.attrs['disabled'] = True 1368 self.fields['airPressure'].widget.attrs['class'] = 'disabled-metadata' 1369 except: 1370 logger.error(traceback.format_exc()) 1371 self.fields['airPressure'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), label="Air Pressure", initial="N/A", required=False) 1372 self.fields['airPressure'].widget.attrs['disabled'] = True 1373 self.fields['airPressure'].widget.attrs['class'] = 'disabled-metadata' 1374 1375 # Humidity 1376 try: 1377 if kwargs['initial']['image'].getImagingEnvironment().humidity is not None: 1378 self.fields['humidity'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['image'].id)+', \'humidity\', this.value);'}), initial=kwargs['initial']['image'].getImagingEnvironment().humidity, required=False) 1379 else: 1380 self.fields['humidity'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['image'].id)+', \'humidity\', this.value);'}), required=False) 1381 self.fields['humidity'].widget.attrs['disabled'] = True 1382 self.fields['humidity'].widget.attrs['class'] = 'disabled-metadata' 1383 except: 1384 logger.error(traceback.format_exc()) 1385 self.fields['humidity'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", required=False) 1386 self.fields['humidity'].widget.attrs['disabled'] = True 1387 self.fields['humidity'].widget.attrs['class'] = 'disabled-metadata' 1388 1389 # CO2 percent 1390 try: 1391 if kwargs['initial']['image'].getImagingEnvironment().co2percent is not None: 1392 self.fields['co2percent'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['image'].id)+', \'co2percent\', this.value);'}), initial=kwargs['initial']['image'].getImagingEnvironment().co2percent, label="CO2 [%]", required=False) 1393 else: 1394 self.fields['co2percent'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['image'].id)+', \'co2percent\', this.value);'}), label="CO2 [%]", required=False) 1395 self.fields['co2percent'].widget.attrs['disabled'] = True 1396 self.fields['co2percent'].widget.attrs['class'] = 'disabled-metadata' 1397 except: 1398 logger.error(traceback.format_exc()) 1399 self.fields['co2percent'] = forms.CharField(max_length=10, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="CO2 [%]", required=False) 1400 self.fields['co2percent'].widget.attrs['disabled'] = True 1401 self.fields['co2percent'].widget.attrs['class'] = 'disabled-metadata' 1402 1403 self.fields.keyOrder = ['airPressure', 'co2percent', 'humidity', 'temperature']
1404
1405 -class MetadataStageLabelForm(forms.Form):
1406
1407 - def __init__(self, *args, **kwargs):
1408 super(MetadataStageLabelForm, self).__init__(*args, **kwargs) 1409 1410 # Stage label 1411 1412 # Position x 1413 try: 1414 if kwargs['initial']['image'].getStageLabel() is not None: 1415 self.fields['positionx'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['image'].id)+', \'positionx\', this.value);'}), initial=kwargs['initial']['image'].getStageLabel().positionx, label="Position X", required=False) 1416 else: 1417 self.fields['positionx'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['image'].id)+', \'positionx\', this.value);'}), label="Position X", required=False) 1418 self.fields['positionx'].widget.attrs['disabled'] = True 1419 self.fields['positionx'].widget.attrs['class'] = 'disabled-metadata' 1420 except: 1421 logger.error(traceback.format_exc()) 1422 self.fields['positionx'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Position X", required=False) 1423 self.fields['positionx'].widget.attrs['disabled'] = True 1424 self.fields['positionx'].widget.attrs['class'] = 'disabled-metadata' 1425 1426 # Position y 1427 try: 1428 if kwargs['initial']['image'].getStageLabel() is not None: 1429 self.fields['positiony'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['image'].id)+', \'positiony\', this.value);'}), initial=kwargs['initial']['image'].getStageLabel().positiony, label="Position Y", required=False) 1430 else: 1431 self.fields['positiony'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['image'].id)+', \'positiony\', this.value);'}), label="Position Y", required=False) 1432 self.fields['positiony'].widget.attrs['disabled'] = True 1433 self.fields['positiony'].widget.attrs['class'] = 'disabled-metadata' 1434 except: 1435 logger.error(traceback.format_exc()) 1436 self.fields['positiony'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Position Y", required=False) 1437 self.fields['positiony'].widget.attrs['disabled'] = True 1438 self.fields['positiony'].widget.attrs['class'] = 'disabled-metadata' 1439 1440 # Position z 1441 try: 1442 if kwargs['initial']['image'].getStageLabel() is not None: 1443 self.fields['positionz'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['image'].id)+', \'positionz\', this.value);'}), initial=kwargs['initial']['image'].getStageLabel().positionz, label="Position Z", required=False) 1444 else: 1445 self.fields['positionz'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25, 'onchange':'javascript:saveMetadata('+str(kwargs['initial']['image'].id)+', \'positionz\', this.value);'}), label="Position Z", required=False) 1446 self.fields['positionz'].widget.attrs['disabled'] = True 1447 self.fields['positionz'].widget.attrs['class'] = 'disabled-metadata' 1448 except: 1449 logger.error(traceback.format_exc()) 1450 self.fields['positionz'] = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'size':25}), initial="N/A", label="Position Z", required=False) 1451 self.fields['positionz'].widget.attrs['disabled'] = True 1452 self.fields['positionz'].widget.attrs['class'] = 'disabled-metadata' 1453 1454 self.fields.keyOrder = ['positionx', 'positiony', 'positionz']
1455