ENH: basic comment system

comment system on the top of django.contrib.comments

Comments attached to scipy_central.submission.models.Revision
because we want comments for individual revision of a Submission

Changes Made:
1. new field in scipy_central.submission.models.Revision to enable
Comment Moderation
2. override built-in comment forms
django.contrib.comments.forms.CommentForm to hide all fields except
"comment" --all hidden values are taken by default if signed in
3. Comment form availabe only to signed-in users
4. created extra model field rest_comment --which contains restructured
text
5. Admin interface for custom comment model
ENH: flag comments via ajax

1. Comment Flags are done with Ajax calls, bootstrap Modal
2. After flag is received, 'CommentModerators' Groups receives email
ENH: post comments via ajax

1. django.contrib.comments.views.comments.post_comment() is overridden
2. submit comments using jQuery $.ajax()

Features:
1. Asynchronous posting, preview, loading comments

Features not present:
1. form validation on client side
ENH: delete comments via ajax

/comments/user_delete/{{comment.pk}}/ POST request will allow users to
delete their own comments!

Here we used quite unusual URL naming '../user_delete/'
Because, /comments/delete/{{comment.pk}}/ is by default provided by django
for moderators to remove comment
ENH: edit comments via ajax

1. render edit comment form using template tag
2. $.ajax() is used for POST request
3. edit comment is opened in Bootstrap Modal
4. Submission Form is inherited from
django.contrib.comments.forms.CommentSecurityForm
ENH: show recent 20 user comments on profile

1. comments are generated using get_comment_list template tag
By default returns 20 recent comments; can also profile list count
explicitly

2. each comment is rendered in comments/comment_entry.html

3. send-email-icon-tiny (40 x 40 px) version of send-email-icon (64 x 64)
used for comments image (probably we need new image)
ENH: Rss feed for comments

1. /comments/ latest 40 feeds (Rss)
2. /comments/item_id/rev_id/ all feeds under a revision (Rss)
3. Place feed urls in right-sidebar

Note:
import scipy_central.submission module again for ContentType object
app_name