added validation methods to post, refactored post views to use a form partial