Split contrib.comments CommentForm class to allow easier customization
|Design decision needed
|Patch needs improvement:
The CommentForm class in contrib/comments/forms.py is very monolithic and contains all spam-checking code and the application-specific code.
Splitting the Form into a BaseCommentForm class which contains only the spam-checking code and a CommentForm class which only contains the application-specific code would allow much easier customization of the comments-app.
Using the hooks from #8630 and defining your own model and form (which for example don't include fields for email and url) would either need a copy of the whole form-class code including the modification (about 100 lines of code) or one must subclass the current CommentForm class and manually delete the fields (email and url in this example) before using the form.
The appended patch splits the current CommentForm class into two classes which would allow easier customization of the comments-app. When reviewing this ticket please also see #8630 for more details.