cc1  v2.1
CC1 source code docs
 All Classes Namespaces Files Functions Variables Pages
iso_image.py
Go to the documentation of this file.
1 # -*- coding: utf-8 -*-
2 # @COPYRIGHT_begin
3 #
4 # Copyright [2010-2014] Institute of Nuclear Physics PAN, Krakow, Poland
5 #
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 # http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 #
18 # @COPYRIGHT_end
19 
20 ##
21 # @package src.wi.forms.iso_image
22 #
23 # @author Krzysztof Danielowski
24 # @author Piotr Wójcik
25 # @date 10.06.2011
26 #
27 
28 from django import forms
29 from django.utils.translation import ugettext_lazy as _
30 
31 from wi.utils import parsing
32 from wi.utils.forms import attrs_dict, BetterForm
33 from wi.utils.widgets import SelectWithDisabled
34 
35 
36 ##
37 #
38 # Form for <b>ISO image's ulpoad</b>.
39 #
40 class UploadISOForm(BetterForm):
41  ##
42  #
43  # Fieldset names definition.
44  #
45  class Meta:
46  fieldsets = (('description', {'fields': ('name', 'description'), 'legend': _('Disk description')}),
47  ('settings', {'fields': ('path', 'disk_controller'), 'legend': _('Settings')}),)
48 
49  def __init__(self):
50  pass
51 
52  name = forms.CharField(widget=forms.TextInput(attrs=dict(attrs_dict, maxlength=45)),
53  label=_('Name'))
54  description = forms.CharField(required=False,
55  widget=forms.Textarea(attrs=dict(attrs_dict, maxlength=512, rows=3, cols=20)),
56  label=_('Description'))
57  path = forms.CharField(widget=forms.Textarea(attrs=dict(attrs_dict, maxlength=500, rows=3, cols=20)),
58  label=_('Link to ISO image (http:// or ftp://)'))
59 
60  def __init__(self, *args, **kwargs):
61  rest_data = kwargs.pop('rest_data')
62  super(UploadISOForm, self).__init__(*args, **kwargs)
63 
64  self.fields['disk_controller'] = forms.ChoiceField(choices=parsing.parse_generic_enabled(rest_data, 'disk_controllers'),
65  widget=SelectWithDisabled(attrs=dict()),
66  label=_("Bus"))
67  self.fields['disk_controller'].widget.attrs['class'] = 'medium'
68 
69  ##
70  #
71  # Cast 'disk_controller' to int.
72  #
74  return int(self.cleaned_data['disk_controller'])
75 
76 
77 ##
78 #
79 # Form for <b>ISO image edition</b>.
80 #
81 class EditISOForm(forms.Form):
82 
83  name = forms.CharField(widget=forms.TextInput(attrs=dict(attrs_dict, maxlength=45)),
84  label=_('ISO image name'))
85 
86  description = forms.CharField(required=False,
87  widget=forms.Textarea(attrs=dict(attrs_dict, maxlength=512, rows=3, cols=20)),
88  label=_('ISO image description'))
89 
90  def __init__(self, *args, **kwargs):
91  rest_data = kwargs.pop('rest_data')
92  super(EditISOForm, self).__init__(*args, **kwargs)
93 
94  self.fields['disk_controller'] = forms.ChoiceField(choices=parsing.parse_generic_enabled(rest_data, 'disk_controllers'),
95  widget=SelectWithDisabled(attrs=dict()),
96  label=_("Bus"))
97  self.fields['disk_controller'].widget.attrs['class'] = 'medium'
98 
99  ##
100  #
101  # Cast 'disk_controller' to int.
102  #
104  return int(self.cleaned_data['disk_controller'])
105