]> git.openstreetmap.org Git - osqa.git/blobdiff - forum/forms/admin.py
Several improvements in the node bulk management feature. Improved filters and added...
[osqa.git] / forum / forms / admin.py
index eabeb5743aef6fc9084854a038f7298ceaaf57c2..32d710bebc0a1f6d1f43a896a15c2065b9ae712c 100644 (file)
@@ -1,8 +1,11 @@
 import socket
 from django import forms
 from django.utils.translation import ugettext as _
+from django.contrib.admin.widgets import FilteredSelectMultiple, AdminDateWidget
 from qanda import TitleField, EditorField
 from forum import settings
+from forum.models.node import NodeMetaClass
+from forum.models import User
 
 class IPListField(forms.CharField):
     def clean(self, value):
@@ -37,30 +40,30 @@ class MaintenanceModeForm(forms.Form):
 
 
 TEMPLATE_CHOICES = (
-    ('default', _('Default')),
-    ('sidebar', _('Default with sidebar')),
-    ('none', _('None')),
+('default', _('Default')),
+('sidebar', _('Default with sidebar')),
+('none', _('None')),
 )
 
 RENDER_CHOICES = (
-    ('markdown', _('Markdown')),
-    ('html', _('HTML')),
-    ('escape', _('Escaped'))
+('markdown', _('Markdown')),
+('html', _('HTML')),
+('escape', _('Escaped'))
 )
 
 class UrlFieldWidget(forms.TextInput):
     def render(self, name, value, attrs=None):
         if not value:
             value = ''
-            
+
         return """
                 <input class="url_field" type="text" name="%(name)s" value="%(value)s" />
                 <a class="url_field_anchor" target="_blank" href="%(app_url)s%(script_alias)s"></a>
-            """  % {'name': name, 'value': value, 'app_url': settings.APP_URL, 'script_alias': settings.FORUM_SCRIPT_ALIAS}
+            """  % {'name': name, 'value': value, 'app_url': settings.APP_URL,
+                    'script_alias': settings.FORUM_SCRIPT_ALIAS}
 
 
 class PageForm(forms.Form):
-
     def __init__(self, page, *args, **kwargs):
         if page:
             initial = page.extra
@@ -70,17 +73,49 @@ class PageForm(forms.Form):
             super(PageForm, self).__init__(*args, **kwargs)
 
 
-    title  = forms.CharField(label=_('Title'), max_length=255, widget=forms.TextInput(attrs={'class': 'longstring'}), initial='New page')
+    title  = forms.CharField(label=_('Title'), max_length=255, widget=forms.TextInput(attrs={'class': 'longstring'}),
+                             initial='New page')
     path  = forms.CharField(label=_('Page URL'), widget=UrlFieldWidget, initial='pages/new/')
 
     content = forms.CharField(label=_('Page Content'), widget=forms.Textarea(attrs={'rows': 30}))
-    render = forms.ChoiceField(widget=forms.RadioSelect, choices=RENDER_CHOICES, initial='markdown', label=_('Render Mode'))
+    mimetype = forms.CharField(label=_('Mime Type'), initial='text/html')
+
+    render = forms.ChoiceField(widget=forms.RadioSelect, choices=RENDER_CHOICES, initial='markdown',
+                               label=_('Render Mode'))
 
-    template = forms.ChoiceField(widget=forms.RadioSelect, choices=TEMPLATE_CHOICES, initial='default', label=_('Template'))
+    template = forms.ChoiceField(widget=forms.RadioSelect, choices=TEMPLATE_CHOICES, initial='default',
+                                 label=_('Template'))
     sidebar = forms.CharField(label=_('Sidebar Content'), widget=forms.Textarea(attrs={'rows': 20}), required=False)
-    sidebar_wrap = forms.BooleanField(label=_("Wrap sidebar block"), initial=True, required=False) 
-    sidebar_render = forms.ChoiceField(widget=forms.RadioSelect, choices=RENDER_CHOICES, initial='markdown', label=_('Sidebar Render Mode'))
+    sidebar_wrap = forms.BooleanField(label=_("Wrap sidebar block"), initial=True, required=False)
+    sidebar_render = forms.ChoiceField(widget=forms.RadioSelect, choices=RENDER_CHOICES, initial='markdown',
+                                       label=_('Sidebar Render Mode'))
 
     comments = forms.BooleanField(label=_("Allow comments"), initial=False, required=False)
 
+TEXT_IN_CHOICES = (
+('title', _('Title')),
+('body', _('Body')),
+('both', _('Title and Body'))
+)
+
+class NodeManFilterForm(forms.Form):
+    node_type = forms.CharField(widget=forms.HiddenInput, initial='all')
+    state_type = forms.CharField(widget=forms.HiddenInput, initial='any')
+    text = forms.CharField(required=False, widget=forms.TextInput(attrs={'size': 40}))
+    text_in = forms.ChoiceField(required=False, widget=forms.RadioSelect, choices=TEXT_IN_CHOICES, initial='title')
+
+
+from forum.forms.auth import SimpleRegistrationForm
+from forum.forms.general import SetPasswordForm
+
+
+class CreateUserForm(SimpleRegistrationForm, SetPasswordForm):
+    validate_email = forms.BooleanField(required=False, label=_('send validation email'))
+
+    def __init__(self, *args, **kwargs):
+        super(CreateUserForm, self).__init__(*args, **kwargs)
+        self.fields.keyOrder = ['username', 'email', 'validate_email', 'password1', 'password2']
+        self.fields['email'].label = _('email address')
+
+
     
\ No newline at end of file