#1753: require author info when not logged in
authorRadek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
Fri, 14 Oct 2011 13:06:32 +0000 (15:06 +0200)
committerRadek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
Fri, 14 Oct 2011 13:06:32 +0000 (15:06 +0200)
apps/wiki/forms.py
apps/wiki/views.py
redakcja/static/js/wiki/base.js

index 1d4d854..394b823 100644 (file)
@@ -34,13 +34,13 @@ class DocumentTextSaveForm(forms.Form):
     text = forms.CharField(widget=forms.HiddenInput)
 
     author_name = forms.CharField(
     text = forms.CharField(widget=forms.HiddenInput)
 
     author_name = forms.CharField(
-        required=False,
+        required=True,
         label=_(u"Author"),
         help_text=_(u"Your name"),
     )
 
     author_email = forms.EmailField(
         label=_(u"Author"),
         help_text=_(u"Your name"),
     )
 
     author_email = forms.EmailField(
-        required=False,
+        required=True,
         label=_(u"Author's email"),
         help_text=_(u"Your email address, so we can show a gravatar :)"),
     )
         label=_(u"Author's email"),
         help_text=_(u"Your email address, so we can show a gravatar :)"),
     )
@@ -59,6 +59,14 @@ class DocumentTextSaveForm(forms.Form):
         help_text=_(u"If you completed a life cycle stage, select it."),
     )
 
         help_text=_(u"If you completed a life cycle stage, select it."),
     )
 
+    def __init__(self, *args, **kwargs):
+        user = kwargs.pop('user')
+        r = super(DocumentTextSaveForm, self).__init__(*args, **kwargs)
+        if user and user.is_authenticated():
+            self.fields['author_name'].required = False
+            self.fields['author_email'].required = False
+        return r
+
 
 class DocumentTextRevertForm(forms.Form):
     """
 
 class DocumentTextRevertForm(forms.Form):
     """
index 15fc462..b137a54 100644 (file)
@@ -62,7 +62,7 @@ def editor(request, slug, chunk=None, template_name='wiki/document_details.html'
     return direct_to_template(request, template_name, extra_context={
         'chunk': chunk,
         'forms': {
     return direct_to_template(request, template_name, extra_context={
         'chunk': chunk,
         'forms': {
-            "text_save": forms.DocumentTextSaveForm(prefix="textsave"),
+            "text_save": forms.DocumentTextSaveForm(user=request.user, prefix="textsave"),
             "text_revert": forms.DocumentTextRevertForm(prefix="textrevert"),
             "pubmark": forms.DocumentPubmarkForm(prefix="pubmark"),
         },
             "text_revert": forms.DocumentTextRevertForm(prefix="textrevert"),
             "pubmark": forms.DocumentPubmarkForm(prefix="pubmark"),
         },
@@ -104,7 +104,7 @@ def text(request, chunk_id):
     doc = get_object_or_404(Chunk, pk=chunk_id)
 
     if request.method == 'POST':
     doc = get_object_or_404(Chunk, pk=chunk_id)
 
     if request.method == 'POST':
-        form = forms.DocumentTextSaveForm(request.POST, prefix="textsave")
+        form = forms.DocumentTextSaveForm(request.POST, user=request.user, prefix="textsave")
         if form.is_valid():
             if request.user.is_authenticated():
                 author = request.user
         if form.is_valid():
             if request.user.is_authenticated():
                 author = request.user
@@ -123,6 +123,8 @@ def text(request, chunk_id):
                        parent=parent,
                        description=form.cleaned_data['comment'],
                        tags=tags,
                        parent=parent,
                        description=form.cleaned_data['comment'],
                        tags=tags,
+                       author_name=form.cleaned_data['author_name'],
+                       author_email=form.cleaned_data['author_email'],
                        )
             revision = doc.revision()
             return JSONResponse({
                        )
             revision = doc.revision()
             return JSONResponse({
index de1d8e5..8625b11 100644 (file)
                        var global = $("*[data-ui-error-for='__all__']", this.$elem);
                        var unassigned = [];
 
                        var global = $("*[data-ui-error-for='__all__']", this.$elem);
                        var unassigned = [];
 
+            $("*[data-ui-error-for]", this.$elem).text('');
                        for (var field_name in errors)
                        {
                                var span = $("*[data-ui-error-for='"+field_name+"']", this.$elem);
                        for (var field_name in errors)
                        {
                                var span = $("*[data-ui-error-for='"+field_name+"']", this.$elem);