cc1  v2.1
CC1 source code docs
 All Classes Namespaces Files Functions Variables Pages
template.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.template
22 #
23 # @author Krzysztof Danielowski
24 # @author Piotr W√≥jcik
25 # @date 17.10.2011
26 #
27 
28 from django import forms
29 from django.utils.translation import ugettext_lazy as _
30 
31 from wi.utils.forms import attrs_dict
32 from wi.utils.states import ec2names_reversed
33 
34 
35 ##
36 #
37 # Class for <b>template creation</b> form.
38 #
39 class TemplateForm(forms.Form):
40  name = forms.CharField(widget=forms.TextInput(attrs=dict(attrs_dict, maxlength=45)),
41  label=_("Name"))
42  cpu = forms.IntegerField(min_value=1,
43  initial=1,
44  label=_("Cpu"))
45  memory = forms.IntegerField(min_value=64,
46  initial=2048,
47  label=_("Memory [MB]"))
48  points = forms.IntegerField(max_value=1000000,
49  min_value=1,
50  label=_("Points per hour"))
51  description = forms.CharField(required=False,
52  widget=forms.Textarea(attrs=dict(attrs_dict, maxlength=512, rows=3, cols=20)),
53  label=_("Description"))
54 
55  def __init__(self, *args, **kwargs):
56  super(TemplateForm, self).__init__(*args, **kwargs)
57  self.fields['ec2name'] = forms.ChoiceField(choices=ec2names_reversed.items(),
58  label=_('Ec2 name'))
59  self.fields['ec2name'].widget.attrs['class'] = 'large'
60  self.fields.keyOrder = ['name', 'ec2name', 'cpu', 'memory', 'points', 'description']
61 
62  ##
63  #
64  # Cast 'ec2name' to int.
65  #
66  def clean_ec2name(self):
67  return int(self.cleaned_data['ec2name'])
68