class FullEditConfigForm(EditConfigForm): kernel = forms.URLField(widget=forms.widgets.TextInput(attrs={'id':"kernel"}), label="Kernel/Image") initrd = forms.URLField(widget=forms.widgets.TextInput(attrs={'id':"initrd"}), required=False) args = forms.CharField(widget=forms.widgets.TextInput(attrs={'id':"args"}), required=False)
class CreateConfigForm(BaseConfigForm): type = forms.ChoiceField( widget=forms.widgets.Select(attrs={'id':"imagetype"}), choices=( ("kernel", "Linux Kernel"), ("image", "Raw image file"), ("memdisk", "Disk image"), ("iso", "CD ISO Image")), initial="kernel") kernel = forms.URLField(widget=forms.widgets.TextInput(attrs={'id':"kernel"}), label="Kernel/Image") initrd = forms.URLField(widget=forms.widgets.TextInput(attrs={'id':"initrd"}), required=False) args = forms.CharField(widget=forms.widgets.TextInput(attrs={'id':"args"}), required=False)
class CommentForm(forms.Form): id = forms.CharField(widget=forms.HiddenInput) name = forms.CharField(max_length=64) url = forms.URLField(max_length=128, required=False) comment = forms.CharField(widget=forms.Textarea(attrs={ 'rows': 8, 'cols': 60 })) remember = forms.BooleanField(initial=True, required=False)
class ApplianceForm(forms.Form): url = forms.URLField() email = forms.EmailField() appliance_type = forms.ChoiceField(choices = [('', 'Unknown'), ('EC2', 'Amazon EC2'), ('VMX', 'VMware'), ('Devel', 'Development')])
def formfield(self, **kwargs): defaults = { 'required': not self.blank, 'verify_exists': self.verify_exists, 'label': capfirst(self.verbose_name), 'help_text': self.help_text } defaults.update(kwargs) return forms.URLField(**defaults)
class IDPForm(forms.Form): source_id = forms.CharField(max_length=40) name = forms.CharField(max_length=32) logo = forms.CharField(widget=forms.FileInput(), required=False) domain = forms.RegexField(r'^[a-zA-Z0-9\.\-]*$', max_length=64, required=False) logouturl = forms.URLField(max_length=128, required=False) website = forms.URLField(max_length=64, required=False) format = forms.CharField( help_text='Format of identity URL, use % as placeholder for username') def clean_format(self): format = self.data['format'] if format.count('%') != 1: raise forms.ValidationError( 'Must have one percent (%) as username placeholder') return format
class StatsMetadataForm(forms.Form): title = forms.CharField(widget=forms.TextInput(attrs={'class': 'text'}), ) subtitle = forms.CharField( required=False, widget=forms.TextInput(attrs={'class': 'text'}), ) url = forms.URLField( required=False, widget=forms.TextInput(attrs={'class': 'text'}), # Disabled for now, since it seems to imply required=True. # verify_exists = True, ) description = forms.CharField( required=False, widget=forms.Textarea, ) photo_id = forms.IntegerField( required=False, widget=ImageWidget, ) icon_id = forms.IntegerField( required=False, widget=ImageWidget, ) def clean_subtitle(self): return self.cleaned_data.get('subtitle') or None def clean_url(self): return self.cleaned_data.get('url') or None def clean_description(self): return self.cleaned_data.get('description') or None def clean_photo_id(self): return self.cleaned_data.get('photo_id') or None def clean_icon_id(self): return self.cleaned_data.get('icon_id') or None def apply(self, cset): target = cset.asset.target cset.set_field_dict(self.cleaned_data, prefix='target.') if target.photo: target.photo.reference() if target.icon: target.icon.reference()
class NewCommentForm(forms.Form): article_url = forms.URLField(required=True, widget=forms.HiddenInput) article_title = forms.CharField(required=False, widget=forms.HiddenInput) author_name = forms.CharField(required=True, label="Name") author_email = forms.EmailField(required=True, label="Email") author_url = forms.URLField(required=False, label="URL") author_ip = forms.CharField(required=False) comment = forms.CharField(required=True, widget=forms.Textarea(attrs={ 'cols': 30, 'rows': 3 })) def save(self): data = self.clean_data article_url = data.get('article_url') article_title = data.get('article_title') or data.get('article_url') article = models.Article.get_or_insert(article_url, url=article_url, title=article_title) if article.title != article_title: article.title = article_title article.put() author_email = data.get('author_email') author_name = data.get('author_name') author_url = data.get('author_url') author_ip = data.get('author_ip') author_key = (author_email or '') + author_name author = models.Author.get_or_insert(author_key, name=author_name) has_changes = False if author.url != author_url and author_url: author.url = author_url has_changes = True if author_email and author_email != author.email: author.email = author_email has_changes = True if has_changes: author.put() comment = models.Comment(parent=article, comment=data.get('comment'), author=author, article=article, author_ip=author_ip) comment.put() params = urllib.urlencode({ 'article_url': article_url, 'comment_id': comment.key().id() }) taskqueue.add(url="/api/notify/?" + params, method="GET") self._author = author self._article = article self._comment = comment return comment @property def output(self): return { 'article': { 'url': self._article.url, 'title': self._article.title, }, 'author': { 'email': self._author.email, 'name': self._author.name, 'url': self._author.url, }, 'comment': self._comment.comment, }
class EditForm(forms.Form): name = forms.CharField() adminUrl = forms.URLField(required=False) memberUrl = forms.URLField(required=False) worklist_limit = forms.IntegerField(required=False)
class WebForm(forms.Form): Site = forms.URLField(help_text="URL to this appliance") HomePage = forms.URLField(help_text="URL to your company home page") ScriptDomain = forms.CharField(required=False) CookieDomain = forms.CharField(required=False)